E ai.. como vão?
Vou mostrar aqui um dos métodos de como funciona o login com banco de dados em delphi.
Vamos supor que eu ja tenho uma conexão. Criei um banco de dados em Access com uma tabela 'login'.
Criei uma tabela na seguinte estrutura:
Criei um DataModule e coloquei o ADOConnectio e o ADOTable la. Estou chamando o Datamodule de 'dm'.
Feita a conexão com o banco de dados (
Você pode ver como é feita essa conexão com Access aqui) vamos colocar a 'mão na massa'!
Vamos criar dois formulários, o de login, e o de exibição (tela pra confirmar o login).
O formulário de login, tem a seguinte estrutura:
Vou utilizar
edtUsuario para a Edit do usuario e
edtSenha para a Edit da senha.
O código responsável pela verificação dos campos é o seguinte (OnClick do botão 'Entrar'):
procedure TForm1.Button1Click(Sender: TObject);
begin
// ativa a tabela
dm.tb_login.Open;
// verifica se os campos coincidem,
// tanto na tabela, quanto nas edits
if dm.tb_login.Locate('usuario', edtUsuario.Text, [loCaseInsensitive ]) and
dm.tb_login.Locate('senha', edtSenha.Text, [loCaseInsensitive ]) then
begin
// fecha a tabela
dm.tb_login.Close();
// mostra outro form
Form2.Show;
// esconde o atual
Self.Hide;
end
// se os campos forem vazios
else if (edtUsuario.Text = '') and (edtSenha.Text= '') then
begin
// mostra mensagem
ShowMessage('Preencha os campos login e senha!');
edtUsuario.SetFocus;
end
else // campos nao conferem
begin
// campos nao conferem
ShowMessage('Usuario ou senha inválidos!');
edtUsuario.Clear;
edtSenha.Clear;
end;
end;
Vale lembrar que para a utilização das opções TLocateOptions (loPartialKey ou loCaseInsensitive) é necessário declarar a uses '
DB'.
-Entendendo o Locate
tabela.Locate('campo_da_tabela', 'texto_para_procurar', [opções_de_localização]).
O que são essas opções de localização?
Podem ser usadas
loCaseInsensitive e
loPartialKey.
loCaseInsensitive: Diferencia maiúsculas e minusculas, exemplo: Nome é diferente de NOME que é diferente de NoMe.
loPartialKey: Pode localizar partes de registros, exemplo: 'Progr' pode ser 'Programa' que pode ser 'Programador'.
Agora basta criar um outro Form com um Label, responsável por dar boas vindas ao usuario.
Altere o nome para lblOla. (Olá)
Altere o evento
OnShow do forumlário 2 para o seguinte código:
// mostra o nome do usuario logado
lblOla.Caption := 'Olá ' + Form1.edtUsuario.Text;
Basta executar e testar!
Este código pode ser baixado aqui.
Abraço e até a próxima!