Buscar

Login/Senha dbExpress e MySQL 5

Código

1. Considerações iniciais

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)
)

"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

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Banco de dados
Adicionada dia: 31/07/10
Por: Júlio César Schincariol Filho
Visualizada: 11024 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009