Ver Mensaje Individual
  #19  
Antiguo 21-06-2011
rrosariom rrosariom is offline
Miembro
 
Registrado: abr 2007
Posts: 23
Reputación: 0
rrosariom Va por buen camino
Exclamation Acceso a una aplicacion introduciendo usuario y clave

Hola que tal todos mis amigos.

Hace varios dias estoy tratando de crear una aplicacion que acceda a una base de datos ORACLE EXPRESS 11G, y al crear el codigo y las configuraciones de propiedades el programa me corre bien, pero cuando introduzco el usuario y clave siempre me da que es incorrecto aunque lo introduzca bien.

para validar el usuario, fue creado un registro en una tabla de la base de datos, y haciendo la consulta fuera de delphi me devuelve el valor correctamente.

Anexo el codigo para ver si alguien me puede ayudar:

Código Delphi [-]
var
  FLogon: TFLogon;
  Cuenta : integer;
  Usuario : String;
  LoginOK : boolean;

implementation

{$R *.dfm}

procedure TFLogon.BtnOKClick(Sender: TObject);
begin
// Ini
   LoginOK := False;
   // Buscamos si hay algun usuario con ese nombre
   ADLogin.Parameters.ParamByName('nom').Value:= EUsuario.Text;
      ADLogin.Active:= True;
//   EUsuario.Text:= ADLogin.Fields[1].AsString;
   // Si no hay ninguno es que ha fallado
   If ADLogin.RecordCount < 1 then begin
       // incrementamos la cuenta de intentos fallidos
       Cuenta := Cuenta + 1;
       // mensaje al usuario
       MessageDlg('Usuario no encontrado',mtError, [mbOK], 0);
       // limpiamos campos
       EUsuario.Text := '';
       EClave.Text := '';
       ADLogin.Active := False;
       adlogin.Open;
       EUsuario.SetFocus;

       // Si ya ha fallado 3 veces, SALIMOS
       If Cuenta = 3 then begin
          // Incorrecto
          ModalResult := mrCancel;
        end;
    end
   else
       // Ha encontrado uno con ese nombre...
       // Además coincide la clave (password)?
       If ADLoginClave2.AsString = EClave.Text then begin
           LoginOk := True;
           adlogin.Open;
           ADLogin.Active := False;

           // Correcto
           ModalResult := mrOk;

        end

        // usuario correcto, pero password incorrecto
        else Begin
           Cuenta := Cuenta + 1;
           MessageDlg('Clave Inválida',mtError, [mbOK], 0);
           EClave.Text := '';
           ADLogin.Active := False;
           If Cuenta = 3 then begin
              // Incorrecto
              ModalResult := mrCancel;
              adlogin.Open;
              EUsuario.SetFocus;
           end;


Este codigo lo tome del foro, y lo adapte a mi aplicacion.

Un Saludo,
Rolando.

Última edición por Neftali [Germán.Estévez] fecha: 21-06-2011 a las 10:06:21.
Responder Con Cita