Ir para conteúdo

Arquivado

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

Vinicius Santanna

Tela de login no delphi

Recommended Posts

To tentando fazer uma tela de login no delphi.....por enquanto coisa simples, mas ta dando esse erro "Capability not supported".

O codigo que to usando é o seguinte:

 

procedure TForm19.Button1Click(Sender: TObject);BeginQuery1.Close;Query1.SQL.Clear;Query1.SQL.ADD('Select * from Login.DB Where  User= :User and Senha= :Senha');Query1.ParamByName('USER').AsString:= Edit1.Text;Query1.ParamByName('Senha').AsString:= Edit2.Text;Query1.Open;If Query1.RecordCount <> 0 Then  BeginForm19.Hide;  Form1.Enabled:= True;  Endelse  begin  MessageDLG('Falha: Usuario e/ou senha incorretos', mtConfirmation,[mbOk],0);  end;End;

Alguem sabe oque esta acontecendo? ou tem alguma "receita de bolo"?

OBS: To usando uma tabela paradox!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim:

Query1.Close;Query1.SQL.Clear;Query1.SQL.ADD('Select * from Login Where  User = '+QuotedStr(Edit1.Text)+' and Senha = '+QuotedStr(Edit2.Text));Query1.Open;if Query1.RecordCount = 0 then  application.terminateelse  showmessage('OK');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala ai cara...Vinicius... eu não arquivaria este tipo de informação em banco de dados....Muito facil de ser quebrada..... ou modificada...Tenho um componente que gera um arquivo de tipo .dat que seria muito mais dificil de abrir o arquivo corretamente..me passa o seu e-mail.. mesmo assim eu arquivo a senha do usuario com chave de criptografia na senha.Falo..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas no caso para armazenar a senha e o user, poderia ser usado criptografia e armazenar as info no BD, teria a mesma segurança do que sendo pelo arquivo, mas no final fica na escolha dele como vai querer fazer...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Vinicius...

Qual o erro que está dando? Tente mudar estas linhas...

Query1.SQL.ADD('Select * from Login.DB Where  User= :p_user and Senha= :p_senha');Query1.ParamByName('p_user').AsString:= Edit1.Text;Query1.ParamByName('p_senha').AsString:= Edit2.Text
Espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas no caso para armazenar a senha e o user, poderia ser usado criptografia e armazenar as info no BD, teria a mesma segurança do que sendo pelo arquivo, mas no final fica na escolha dele como vai querer fazer...

Concordo com o Márcio... Mete uma chave de 128bits e pronto. MD5 é a melhor opção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Beto meu e-mail é vinisantanna@hotmail.com, me passe o componente por favor. Mas antes de me preucupar com esse tipo de segurança eu preciso que o sistema de login funcione, em os 2 codigos( o do Hugo e doVinicius) que vcs me pasaram deu o seguinte erro quando eu clico no botão, é o mesmo que acontece no meu codigo original : "Project Project1.exe raised exception class EDBEngineError with message 'Capability not supported.'. Process stopped. Use Step or Run to continue."Achei um sistema de login na net e vo tentar adapta-lo ao meu sistema, quanto ao modo em que eu vo fazer a segurança realmente ainda não sei Marcio, nunca usei arquivos .dat, quero fazer apenas algo simples , já que é um trabalho simples de conclusão de curso, vo da uma pesquisada em MD5 e ver qual fica melhor. Valew pessoal!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o nome correto da sua tabela? Caso ela for Login, use o seguinte código:

 

Query1.SQL.ADD('Select * from Login Where User= :p_user and Senha= :p_senha');Query1.ParamByName('p_user').AsString:= Edit1.Text;Query1.ParamByName('p_senha').AsString:= Edit2.Text;

O Erro de "Capability not supported" é devido a você estar tentando acessar a base de dados Login e a tabela DB (Login.DB). Coloque o código acima e veja se funciona ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara to tentando acessar a tabela "Login" do Alias "Chamada", o cogigo que você me passou não alterou em nada pois pelo oq deu pra entender( não manjo muito de ingles) do link da borland, o BDE não aceita essa string que eu to mandando, por isso da esse erro. Parace que vou ter que mudar a logica msm.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É que como você estava fazendo antes:

Select * from Login.DB
estava errado. Qual o banco que você está utilizando? Te aconselho a ir no SQL Explorer e tentar executar o código por fora do Delphi. Mas deveria funcionar este select do meu post anterior. Estranho... :unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tambem achei estranho mas enfim resolvi mudar a logica e até agora não deu nenhuma mensagem de erro, mas , ele só reconhece o 1° usuario..estranho tbm né...hehehe.

 

VarvSenha, vUser : String;BeginTable1.Edit;vUser:=  Table1.FindField('User').AsString;vSenha:= Table1.FindField('Senha').AsString; If (vUser = Edit1.Text) and (vSenha = Edit2.Text) Then   Begin   Form19.Visible:= False;   Form1.Enabled:= True;   Endelse   Begin   MessageDLG('Falha: Usuario e/ou senha incorretos', mtConfirmation,[mbOk],0);   Edit1.SetFocus;   End;End;

Mantive a base de dados(tabela: Login, em paradox, Alias : Chamada.)Mas como já disse ele só reconhece 1° usuario...alguma sugestão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você esta dando um Edit na tabela, no caso ele fica no primeiro registro somente, o que pode fazer é dar um Locate na tabela, algo do tipo:

 

VarvSenha, vUser : String;Beginif not Table1.Active then	Table1.Open;if Table1.Locate('USER',Edit1.Text,[]) then	begin	vSenha:=Table1.FindField('Senha').AsString;	If (vSenha = Edit2.Text) Then		Begin		Form19.Visible:= False;		Form1.Enabled:= True;		End	else		Begin		MessageDLG('Falha: Usuario e/ou senha incorretos', mtConfirmation,[mbOk],0);		Edit1.SetFocus;		End;	endelse	Begin	MessageDLG('Falha: Usuario e/ou senha incorretos', mtConfirmation,[mbOk],0);	Edit1.SetFocus;	End;End;

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.