Ir para conteúdo

POWERED BY:

Arquivado

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

Kleber Quilez

Tela de Login Problema!

Recommended Posts

Pessoal estou fazendo uma telinha de login e estou com o seguinte problema!! Ele só obedece com o primeiro usuario da tabela, é como se ele não corresse as linhas da tabela, se não for o primeiro registro não vai!! Gostaria de Saber onde estou errando!! Gratoif (edtSenha.text<>'') and (edtUser.text<>'') then begin // Condição que testa a igualdade dos campos senha e usuário if (EdtSenha.text=query.FieldByName('senha').AsString) and (edtUser.text=query.FieldByName('user').AsString) then begin frmLogin.Close; // Fechar a tela de login (então é executado o OnClose do Form); login:=true; // Setar variável como true; end else begin messageBox(handle,'Usuário ou Senha Inválida','ATENÇÃO!',MB_ICONERROR+mb_OK); edtSenha.Text:=''; edtUser.text:=''; edtUser.SetFocus; end;end else messageBox(handle,'Você deve preencher o nome de usuário e senha','ATENÇÃO!',MB_ICONERROR+mb_OK);end;end.Esse é o Código Usado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Queridão!! Não seria essa aqui!?if (EdtSenha.text=query.FieldByName('senha').AsString) and (edtUser.text=query.FieldByName('user').AsString) then begin?? :unsure:Eu Até sei qual é o meu Problema.. eu teriua que ter tipo um While pras linhas do banco de dados... compara primeira false, 2ª, 3ª , 4ª até achar uma, caso não achar ele da um erro.. eu não sei como fazer!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Queridão!!

Oloko, assim minha namorada pode ficar com ciúmes... rsrs...

 

 

Bom, passada a brincadeira, vamos ao papo sério!!!

 

Seguinte ferinha...

 

Funciona da Seguinte forma:

 

A query tem Diversas linhas, correto?

 

Quando você a abre ela fica na primeira linha...

 

Para navegar na query ou você usa o .NEXT, .PRIOR, .LAST, .First... ou então no caso de uma tela de login o nosso objetivo é filtrá-la... certo?

 

 

Bom, vou começar explicando o comando o qual está gerando a confusão na sua cabeça...

if (EdtSenha.text=query.FieldByName('senha').AsString) and (edtUser.text=query.FieldByName('user').AsString) then begin
Esse comando funciona perfeitamente para COMPARAR SE: o registro corrente é efetivamente igual em seus campos senha e usuário aos Edits respectivos...

 

Mas em momento algum você mandou a query para o registro do usuário com o nome do conteúdo de EdtUser.Text...

 

Entendeu Queridão?

 

 

Para isso fazemos da seguinte forma:

 

1º passo, montamos a query, pode ser em tempo de execução:

 

Query1.Sql.Clear;Query1.Sql.Add('Select * from Usuarios');Query1.Sql.Add('Where Nome = '+QuotedStr(EdtUser.Text));Query1.Open;
Ai depois vem o passo que você já fez o código...

 

if (EdtSenha.text=query.FieldByName('senha').AsString) and (edtUser.text=query.FieldByName('user').AsString) then begin

Acho que é isso...

 

Se restar dúvidas não exite em visitar esse exemplo do nosso grande amigo Márcio Theis no link abaixo:

http://forum.imasters.com.br/index.php?showtopic=230297

 

 

Forte abraço! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Queridão".. Prontinho!! Muito Obrigado Fera!! Desculpa as Brincadeiras ai!!Valeu!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Hehe... que isso fera..De bouas... se não brincar fica sério demais... rsrs...Que bom que deu certo, precisando estamos aew... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mais certo e dar um select com o login / senha e conferir se o record count e maior que 0--Desculpe-me, tava tão chato os 3 primeiros post que resolvi posta, ta ai em cima ^^ malz....

Compartilhar este post


Link para o post
Compartilhar em outros sites

iiih! esses "queridão" ae costuma da em casamento hehehehe ....desculpa aew pessoal, mais naum me aguentei hehehe ...sem queridao ou com queridao, o importante é q o problema ta resolvido hehehe ...flw :rolleyes:

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.