Login e senha Delphi 2010 com PostgreSQL
Acredito que seja um problema simples, mas estou aprendendo agora.
Criei um form no Delphi 2010 para validar login e senha do usuário, com o banco de dados PostgreSQL.
Eis o código:
procedure TForm2.Button1Click(Sender: TObject);
begin
if (Edit1.Text = PgTable1.FieldByName('cl_login').AsString) and (Edit2.Text = PgTable1.FieldByName('cl_senha').AsString) then
begin
Form11.ShowModal;
end
else
messagedlg('Usuario e Senha invalidos',mterror,[mbok],0);
end;
Muito bem, funciona. Porém, apenas aceita 1 usuário. Qualquer outro usuário cadastrado, quando tenta logar, recebe a mensagem de "usuário ou senha inválidos".
Gostaria de saber quais mudanças são necessárias para que esse código possa ser usado em um cadastro com vários usuários.
Criei um form no Delphi 2010 para validar login e senha do usuário, com o banco de dados PostgreSQL.
Eis o código:
procedure TForm2.Button1Click(Sender: TObject);
begin
if (Edit1.Text = PgTable1.FieldByName('cl_login').AsString) and (Edit2.Text = PgTable1.FieldByName('cl_senha').AsString) then
begin
Form11.ShowModal;
end
else
messagedlg('Usuario e Senha invalidos',mterror,[mbok],0);
end;
Muito bem, funciona. Porém, apenas aceita 1 usuário. Qualquer outro usuário cadastrado, quando tenta logar, recebe a mensagem de "usuário ou senha inválidos".
Gostaria de saber quais mudanças são necessárias para que esse código possa ser usado em um cadastro com vários usuários.
Matheus Sene
Curtidas 1
Melhor post
Douglas
05/08/2015
Ola Matheus, tudo bem?
O ideal é que você garanta que as strings comparadas estejam realmente iguais. Tente o código abaixo e depois você posta o feedback.
Bons Códigos!
O ideal é que você garanta que as strings comparadas estejam realmente iguais. Tente o código abaixo e depois você posta o feedback.
procedure TForm2.Button1Click(Sender: TObject);
begin
if (UpperCase(Edit1.Text) = UpperCase(PgTable1.FieldByName('cl_login').AsString)) and (Edit2.Text = PgTable1.FieldByName('cl_senha').AsString) then
begin
Form11.ShowModal;
end
else
messagedlg('Usuario e Senha invalidos',mterror,[mbok],0);
end;
Bons Códigos!
GOSTEI 2
Mais Respostas
Matheus Sene
29/07/2015
Douglas, obrigado pela resposta.
Porém, meu problema continua. Creio que esse código está fazendo a comparação apenas com o primeiro registro, quando o correto seria tentar localizar em todos os registros.
Eu utilizo o PostgreSQL, mas tirei esse código de um tutorial no youtube (segue o link: https://www.youtube.com/watch?v=BNxfXlcu8ww) em que a conexão com o banco é realizada através do Access. Eu tentei adaptar o trecho. Acho que uma pequena mudança na sintaxe resolveria.
Obs.: Nos comentários do video, outros usuários perguntam sobre "como adicionar mais cadastros", pois funciona apenas com um cadastro.
Obrigado.
Porém, meu problema continua. Creio que esse código está fazendo a comparação apenas com o primeiro registro, quando o correto seria tentar localizar em todos os registros.
Eu utilizo o PostgreSQL, mas tirei esse código de um tutorial no youtube (segue o link: https://www.youtube.com/watch?v=BNxfXlcu8ww) em que a conexão com o banco é realizada através do Access. Eu tentei adaptar o trecho. Acho que uma pequena mudança na sintaxe resolveria.
Obs.: Nos comentários do video, outros usuários perguntam sobre "como adicionar mais cadastros", pois funciona apenas com um cadastro.
Obrigado.
GOSTEI 0
Carlos Clara
29/07/2015
Salve, amigo. Pelo que entendi, através do PgTable1 vc teria que varrer os registros da tabela um a um, tipo, posicionar o ponteiro no primeiro registro da tabela, comparar este registro com o edit1 e edit2. Se positivo, Showmodal, senão, Pgtable1.next, compara de novo.
Aconselho vc a utilizar componentes que utilizem sql: fdquery, sqldataset...
Veja este post: https://www.devmedia.com.br/utilizando-tela-de-login/470
[]´s
Stclara.
Aconselho vc a utilizar componentes que utilizem sql: fdquery, sqldataset...
Veja este post: https://www.devmedia.com.br/utilizando-tela-de-login/470
[]´s
Stclara.
GOSTEI 0