Problemas com Tela de Login
28/10/2009
0
como sou novato em delphi estou com um problema em conseguir acessar meu form principal atraves da tela de login, o problema eh o seguinte:
eu cadastro o usuario e senha pelo banco e tento chamar pelo delphi, soh q eu soh consigo acessar minha tela principal com o primeiro registro, caso eu tenha 10 usuarios cadastrados no banco ele soh entra com o primeiro registro q eu fiz... nao sei oq eu estou fazendo de errado, segue o codigo abaixo:
procedure TtelaLogin.Button1Click(Sender: TObject);
begin
if((dm.cdsLoginUSUARIO.AsString = edit1.Text) and (dm.cdsLoginSENHA.AsString = edit2.Text)) then
begin
telaPrincipal := TtelaPrincipal.Create(Application);
telaPrincipal.Showmodal;
telaLogin.Close;
end
else begin
ShowMessage('Senha ou login invalidos');
end;
edit1.clear;
edit2.Clear;
end;
end.
Obs.: estou uusando firebird com ibexpert e delphi 7.
Marcio
Posts
28/10/2009
Hermes Silva
28/10/2009
Alan Souza
2°: Desse modo vc tá comparando sempre o usuário corrente do DataSet (o primeiro, no caso). Tenta dar um locate pelo nome de usuário antes, ou filtre o DataSet por ele, aí se ele existir no banco vc valida a senha, se não existir já pede pra confirmar o nome novamente.
28/10/2009
Marcio
Alan sera q vc nao poderia me dar um exemplo?
como eu disse sou novato em programaçao ^^
29/10/2009
Alan Souza
select nome, senha from sua_tabela where nome = :nome
assim vc vai filtrar o usuário passado, então vc só vai abrir o DataSet no evento do botão.
procedure TtelaLogin.Button1Click(Sender: TObject);
begin
dm.cdsLogin.Close;
dm.cdsLogin.ParamByName('nome').AsString := Edit1.Text;
dm.cdsLogin.Open;
if cdsLogin.IsEmpty then
begin
Application.MessageBox('Usuário Inexistente!!','Atenção',MO_OK + MB_ICONWARNING);
Edit1.SetFocus;
end
else
begin
if(dm.cdsLoginSENHA.AsString = edit2.Text)) then
begin
telaPrincipal := TtelaPrincipal.Create(Application);
telaPrincipal.Showmodal;
telaLogin.Close;
end
else
ShowMessage('Senha inválida!!');
end;
end;
só que vendo seu código, há outros pontos meio estranhos: por exemplo, qual seu Main Form na aplicação? se for o de login, está errado, o certo é ser o telaPrincipal.
Clique aqui para fazer login e interagir na Comunidade :)