Código
Este tutorial não tem por objetivo ensinar comandos SQL.
Faremos conexão a um banco de dados MySql 5.1, entretanto o Delphi 7, por natureza, não possui suporte para efetuar a conexão para esta versão. Siga a dica deste link para funcionar: http://www.arquivojuridico.com/downloadsdelphi/PACOTE_DELPHI7_MYSQL5.exe , basta fazer o download e instalar que configura sozinho.
2. Preparando para receber o código
Faremos a parte visual primeiro.
2.1. Abra o Delphi, inicie um novo aplicativo e posteriormente um DataModule. File -> New -> Application e File -> New -> DataModule.
2.1. Adicione ao DataModule2, um componete SQLConnection e um SQLQuery da aba dbExpress.
2.2. Adicione 2Labels, 2 Edits, 2 Buttons e 1 Statusbar, abas Standard e Win32.
Deixe algo semelhante a isto: http://img638.imageshack.us/img638/8815/formprincipalemodule.png
3. Configurando os componentes
3.1. Clique duas vezes sobre SQLConnection1, em Connection Name selecione MySQL50, configure as opções HostName com o ip do servidor, DataBase o nome do banco de dados, User_Name com o nome de usário e Password com a senha do BD. Por fim, clique em "Test Connection", caso afirmativo receberá uma mensagem "Successfully Conected". Dê OK.
3.2. Ainda no SQLConnection1, deixe as propriedades Connected como False, e LoginPrompt False.
3.3. Clique sobre SQLQuery, vá até a propriedade SQLConnection e selecione SQLConnection1.
4. Configurando o banco de dados
4.1. Vamos criar uma tabela dentro do nosso bando de dados para que o mesmo possa receber o cadastro e posterior verificação para efetuar o login. Portanto, selecione o banco de dados no phpMyAdmin acesse o editor SQL e adicione o seguinte code:
CREATE TABLE tbllogin (
id_login int(11) NOT NULL auto_increment,
nome varchar(15) default NULL,
senha varchar(6) default NULL,
PRIMARY KEY (id_login),
UNIQUE KEY nome (nome)
)
Dê "Executar" para criar a tabela. Feito feche o phpMyAdmin.
Primeiro criamos um campo na tabela de auto incrimento, que significa que para cada novo casdastro haverá um único número de identificação. Campo nome com limite de 15 letras, campo senha com limite de 6 digitos, dizemos que o campo "id_login" será a chave primária e que o nome (nosso usuário) deverá ser único, assim evitamos usuários repetidos. O nome da nossa tabela será "tbllogin".
5. Codificando
5.1. Clique na aba "Unit1" no editor, vá em File -> Use Unit e selecione Unit2 dê OK.
5.2. Adicione a seguinte função na "Unit1":
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
Function Conectar : Boolean;
Begin
With DataModule2 Do
Begin
SQLConnection1.Params.Values['HostName'] := 'endereço para conectar(ex: um ip)';
SQLConnection1.Params.Values['DataBase'] := nome do BD';
SQLConnection1.Params.Values['User_Name'] := 'usuário de acesso';
SQLConnection1.Params.Values['Password'] := senha de acesso';
SQLConnection1.Connected := True;
If not SQLConnection1.Connected then
Result := False
else
Result := True;
End;
End;
Como visto, configuramos o SQLConnection1 para não haver problemas com o cliente, mandamos conectar, caso conecte resultado True.
5.3. Duplo clique sobre o TButton "Cadastrar" e adicione o seguinte código:
procedure TForm1.Button1Click(Sender: TObject);
begin
If Conectar = True Then
Begin
With DataModule2 Do
Begin
SQLQuery1.Active := False;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add(' insert into tbllogin (nome, senha) values ("'+edit1.Text+'", "'+edit2.Text+'") ');
SQLQuery1.ExecSQL();
End;
Statusbar1.Panels[0].Text := 'Cadastrado.';
end
Else
Statusbar1.Panels[0].Text := 'Não foi possível cadastrar!';
end;
Linha responsável pela leitura dos dados: SQLQuery1.SQL.Add(' insert into tbllogin (nome, senha) values ("'+edit1.Text+'", "'+edit2.Text+'") '); .
LInha responsável pela execução do SQL: SQLQuery1.ExecSQL(); .
5.4. Duplo clique sobre o TButton "Fazer Login", adicione o código:
procedure TForm1.Button2Click(Sender: TObject);
begin
If Conectar = True Then
Begin
With DataModule2 Do
Begin
SQLQuery1.Active := False;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add(' select * from tbllogin where nome = "'+edit1.Text+'" and senha = "'+edit2.Text+'" ');
SQLQuery1.Active := True;
If not SQLQuery1.IsEmpty Then
Statusbar1.Panels[0].Text := 'Login efetuado com sucesso!'
Else
Statusbar1.Panels[0].Text := 'Usuário/senha incorretas!';
SQLQuery1.Active := False;
End;
end
Else
Statusbar1.Panels[0].Text := 'Não foi possível conectar!';
end;
Linha responsável pela pesquisa na tabela: SQLQuery1.SQL.Add(' select * from tbllogin where nome = "'+edit1.Text+'" and senha = "'+edit2.Text+'" '); .
A linha If not SQLQuery1.IsEmpty Then verifica se a pesquisa retornou algo, se não encontrou retorna "vazio".
6. Finalizando
6.1 O tutorial pode ser aplicado a versões anteriores ao MySql 5, sendo que o Delphi 7 suporta até a versão 4 naturalmente.
Abraço,
Júlio César Schincariol Filho
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009