Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemas asignando passwords a usuarios (https://www.clubdelphi.com/foros/showthread.php?t=33764)

kman 16-07-2006 20:21:20

Problemas asignando passwords a usuarios
 
Saludos Amigos del Club!

Tengo este código para que mis usuarios accedan mi aplicación:

Código Delphi [-]
 
procedure TFrPassword.okClick(Sender: TObject);
var texto: string;
var texto1: string;
begin

        With    Module.QrPasswords
Do Begin
        Close;
        SQL.clear;
        SQL.add('SELECT * FROM PASSWORDS ');
        Open;

texto:= id.text;
texto1:= pass1.Text;

        if texto = '' then begin
           Statusbar1.panels[0].text:=('No se puede dejar (ID) en blanco');
           id.SetFocus;
        end else begin
        if Texto1 = '' then begin
           Statusbar1.panels[0].text:=('No se puede dejar (CLAVE) en blanco');
           pass1.SetFocus;
        end else begin

        If Module.QrPasswords.Locate('Codigo_usuario', texto,[]) then begin
           if module.QrPasswordsPassword.Value = texto1 then begin
              FrInicio.Iniciobar.panels[1].text:= ' USUARIO:'+' '+id.Text;
                FrInicio.showmodal; //Aqui entra a la aplicación
        end else begin
        Statusbar1.panels[0].text:=('CLAVE INCORRECTA');
        end;
        end else begin
        Statusbar1.panels[0].text:=('ID INCORRECTO');
        end;
      end;
     end;
    end;
  end;
end.

Me funciona bien cuando dentro de la aplicación yo mismo le asigno el primer password al usuario.
Mi problema está cuando los usuarios ellos cambian sus passwords, utilizo el siguiente código para eso:

Código Delphi [-]

procedure TFrCambiarClave.BtArtGuardarClick(Sender: TObject);
var
         Pass: Tfield; FechaActi: tfield; FechaInacti: tfield; User: String;

begin
//GRABAR LOS TEXTOS DE LOS EDITS EN LOS CAMPOS DE LA TABLA
        
  User:= EdcodUsuario.text;

  if Module.QrPasswords.Locate('Codigo_Usuario',user,[]) then

 Module.QrPasswords.edit;

 Pass:= Module.QrPasswords.FieldByName('PassWord');
 Pass.AsString := EdClaveNueva.Text;

 FechaActi:= Module.QrPasswords.FieldByName('Fecha_Activa_Password');
 FechaActi.AsDateTime := StrToDate(EdFechaActiva.Text);

 FechaInacti:=Module.QrPasswords.FieldByName('Fecha_Inactiva_Password');
 FechaInacti.AsDateTime := StrToDate(EdFechaInactiva.Text);

        Module.QrPasswords.post;

With    Module.QrPasswords
Do Begin
        Close;
        SQL.clear;
        SQL.add('SELECT * FROM PASSWORDS ');
        Open;
     end; 
   end;
end.
*sighs* Esto lo hace el usuario antes de entrar al programa cuando su password se vence, funciona bien porque al ver en la tabla el cambio se ha realizado, pero el usuario no puede acceder al programa.

¿Qué estará pasando que no funciona?, necesito ayuda con esto, o si me pueden facilitar algún código para esto también será bienvenido.

**Disculpen la longitud del hilo**:D

Lepe 16-07-2006 20:43:19

Elimina la variable "Pass":
Código Delphi [-]
Module.QrPasswords.FieldByName('PassWord').AsString:= edClaveNueva.text;

Saludos

kman 16-07-2006 20:53:16

Código Delphi [-]
If Module.QrPasswords.Locate('Codigo_usuario', texto,[]) then begin
if module.QrPasswordsPassword.Value = texto1 then begin

¿Me creen si les digo que el valor que locate retorna para ser comparado
de la forma que hice (if module.QrPasswordsPassword.Value = texto1)
es case sentive?, pues, si lo es y yo no lo sabía (¡qué tonto!).
Los códigos están bien, perdonen el hilo no necesario:D


La franja horaria es GMT +2. Ahora son las 05:31:05.

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