Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   metdod de ingresar contraseña y usuario (https://www.clubdelphi.com/foros/showthread.php?t=67364)

gonza_619 13-04-2010 21:38:21

metdod de ingresar contraseña y usuario
 
mira tengo que ingresar contraseña y nombre usuario que estan en una tabla llamada USUARIO que tiene los campos ; cod_usuario,nombreusuario y contraseña, pero lo quiero hacer con sql
osea ingresar nombreusuario y contraseña en edit 1 y 2 y luego con un boton de ingresar entra al sistema
y necesito queme busque esos datos para poder entrar al sistema, on findkey intente pero solo se puede con campos indexados
me dieron este codigo=
Query1.active:=False;
query1.sql.text:='SELECT *FROM USUARIOS WHERE NOMBREUSUARIO=:USUARIO AND CONTRASEÑA=:CLAVE';
Query1.parambyname('USUARIO').ASSTRING:=EDIT1.TEXT;
Query1.parambyname('CLAVE').ASSTRING:=EDIT2.TEXT;
QUERY1.ACTIVE:=TRUE;
If query1.recordcount=1 then
form2.show;
pero me tira el error de query1:param 'usuario' not found, y yo ingreso un valor que existe

Caral 13-04-2010 21:47:12

Hola
Código Delphi [-]
var
  FLogin: TFLogin;
   Cuenta : integer;
  Usuario : String;
  LoginOK : boolean;

implementation

uses UFClientes;

{$R *.dfm}

procedure TFLogin.BtnOkClick(Sender: TObject);
begin
    LoginOK := False;
   Query1.SQL.Text:= 'SELECT CodUsuario, Clave  FROM Usuario WHERE CodUsuario = :nom';
   Query1.Parameters.ParamByName('nom').Value:= EditUsuario.Text;
   Query1.Active:= True;
   EditUsuario.Text:= Query1.Fields[1].AsString;
   If Query1.RecordCount < 1 then
    Begin
       Cuenta := Cuenta + 1;
       MessageDlg('Usuario no encontrado',mtError, [mbOK], 0);
       EditUsuario.Text := '';
       EditClave.Text := '';
       Query1.Active := False;
       If Cuenta = 3 then Close;
    end
   else
       If Query1Clave.AsString = EClave.Text then
        Begin
           LoginOk := True;
           Query1.Active := False;
           FPrincipal:=TFPrincipal.Create(self);
           try
           FLogin.Visible:= False;
           FPrincipal.ShowModal;
           finally
           FPrincipal.Free;
           end;
           Close;
        end
     else
         Begin
           Cuenta := Cuenta + 1;
           MessageDlg('Clave Inválida',mtError, [mbOK], 0);
           EditClave.Text := '';
           ADLogin.Active := False;
           If Cuenta = 3 then Close;
         end;

end;

procedure TFLogin.BtnCancelClick(Sender: TObject);
begin
    LoginOK :=False;
   Close;
end;

procedure TFLogin.FormCreate(Sender: TObject);
begin
     Cuenta := 0;
   Usuario := '';

end;
Saludos

Chris 13-04-2010 21:56:36

Cita:

Empezado por gonza_619 (Mensaje 360356)
mira tengo que ingresar contraseña y nombre usuario que estan en una tabla llamada USUARIO que tiene los campos ; cod_usuario,nombreusuario y contraseña, pero lo quiero hacer con sql
osea ingresar nombreusuario y contraseña en edit 1 y 2 y luego con un boton de ingresar entra al sistema
y necesito queme busque esos datos para poder entrar al sistema, on findkey intente pero solo se puede con campos indexados
me dieron este codigo=
Query1.active:=False;
query1.sql.text:='SELECT *FROM USUARIOS WHERE NOMBREUSUARIO=:USUARIO AND CONTRASEÑA=:CLAVE';
Query1.parambyname('USUARIO').ASSTRING:=EDIT1.TEXT;
Query1.parambyname('CLAVE').ASSTRING:=EDIT2.TEXT;
QUERY1.ACTIVE:=TRUE;
If query1.recordcount=1 then
form2.show;
pero me tira el error de query1:param 'usuario' not found, y yo ingreso un valor que existe

En algunos componentes tienes que crear los parámetros antes de usarlos. No sé exactamente cómo se crean los parámetros por medio de código. Talvez sea así:

Query1.Paramenters.Add('usuario');

O algo similar. Lo importante es que los crees antes de usarlos/establecer su valor. Otra forma podría ser crearlos en tiempo de diseño si es que estos son constantes y no cambian.

Saludos,
Chris

Caral 13-04-2010 22:02:31

Hola
Tal Vez.....
Código Delphi [-]
Query1.active:=False;
query1.sql.text:='SELECT * FROM USUARIOS WHERE NOMBREUSUARIO = :USUARIO AND CONTRASEÑA = :CLAVE';
Query1.Parameters[0].Value:=EDIT1.TEXT;
Query1.Parameters[1].Value:=EDIT2.TEXT;
QUERY1.ACTIVE:=TRUE;
If query1.recordcount=1 then
form2.show;
Saludos


La franja horaria es GMT +2. Ahora son las 09:53:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi