Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mauricionicoli

problema ao alterar a senha do usuario

Recommended Posts

tenho uma tela para alterar a senha do usuário..

 

no caso do usuario ter esquecido sua senha ele entra nesta tela..

 

1. digita seu usuario, depois uma nova senha e repete a nova senha novamente..

 

São 3 edits e um botão confirmar..

 

A ideia é que o campo usuário seja verificado no banco se o usuario existe..

 

Se existe o usuario o sistema precisa comparar os dois edits que contem o campos senha e nova senha.. edit2.text e edit3.text respectivamente..

 

Então o sistema deve atualizar o banco de dados com a nova senha..

 

só que ao clicar no botão confirmar ele dá a mensagem...

 

'O campo "Senha" deve ser preenchido!'

procedure Tfrmaltus.btnconfirmarClick(Sender: TObject);
var
senha1: string;
senha2: string;
begin
 edit2.text:=senha1;
 edit3.text:=senha2;
       if (edit1.Text = '') then
         begin
            Messagedlg('O campo "Usuário" deve ser preenchido!', mtError, [mbOk], 0);
       if edit1.CanFocus then
            edit1.SetFocus;
            Exit;
         end;
       if (edit2.Text = '') then
         begin
            Messagedlg('O campo "Senha" deve ser preenchido!', mtError, [mbOk], 0);
       if edit2.CanFocus then
          edit2.SetFocus;
          Exit;
         end;
       if (edit3.Text = '') then
         begin
            Messagedlg('O campo "Nova senha" deve ser preenchido!', mtError, [mbOk], 0);
       if edit3.CanFocus then
          edit3.SetFocus;
          Exit;
         end;
       if logvalido (edit1.Text) then
          ModalResult := mrOk
       else
         begin
          Messagedlg('Usuário não cadastrado!', mtError, [mbOk], 0);
       if edit1.CanFocus then
          edit1.SetFocus;
          Exit;
       end;
       if UpperCase(senha1)=UpperCase(senha2) then
          begin
             DM.ADOQuerySql.SQL.CLEAR;
             DM.ADOQuerySql.SQL.ADD('update administrador set usuario=  '+QuotedStr(trim(senha1))+', '+quotedstr(trim(senha2))+', where usuario= '+edit1.Text);
             DM.ADOQuerySql.execsql;
             showmessage('Senha alterada com sucesso!');
          end;
end;

function Tfrmaltus.logvalido(const usuario: string): Boolean;
begin
   with DM.ADOconexao, DM.ClientDataSet do
       begin
          if not connected then
               connected :=true;
               DM.ClientDataSet.Close;
               DM.ClientDataSet.commandtext := 'select count(1) from administrador ' + 'where upper(usuario) = '+ Quotedstr(AnsiupperCase(trim(usuario)));
               DM.ClientDataSet.Open;
               result := (Fields[0].AsInteger > 0);
         end;
       end;

Uso uma função para validar o usuário..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.