Bom, o assunto que iremos abordar neste artigo é Conexão Nativa entre o Ambiente de desenvolvimento Delphi e Banco de Dados MySQL, PostgreSQL e Firebird.
A Conexão Nativa é a conexão feita diretamente entre o sistema e o banco de dados sem uso de nenhum tipo de driver auxiliar, como por exemplo conexões que usam ODBC, tornando assim a conexão do sistema com o banco de dados muito mais rápida e, consequentemente, tornando o sistema também muito mais leve.
Para trabalharmos com estas conexões nativas nos bancos de dados MySQL, PostgreSQL e Firebird iremos utilizar um dos mais comums componentes para Delphi entre os desenvolvedores: o Zeos.
O Zeos é um componente OpenSource e Free (Gratuito). Você poderá fazer o download do Zeos no site:
www.zeoslib.net (Link para Download). Neste artigo iremos utilizar a versão 6.5.1-Alpha que é a mais recente lançada.
Após feito o Download do Arquivo Zipado, descompacte em um diretório de sua preferência, porém lembre que ele não é uma instalação, então vai permanecer sendo usado sempre.
Usaremos o diretório C:\Zeos. Decompacte todo o conteúdo do arquivo ZIP neste diretório. Após descompactado, o primeiro passo é entrar no diretório C:\Zeos\Lib\MySQL e copiar todos os arquivos DLL para C:\Windows\System32 e faça a mesma coisa com as DLLs do diretório C:\Zeos\Lib\PostgreSQL.
Estas DLLs são as DLLS de conexão do Banco de Dados. São exatamente as mesmas que vem junto ao banco de dados. Ou seja, caso você já possua elas no seu Sistema Operacional, poderá desconsiderar este passo.
O segundo passo é abrir o Delphi. Vá ao menu Tools -> Enviroment Options Selecione a guia Library.

Clique no botão “…” para abrir a janela de adição. Novamente clique no botão “…” para buscar o diretório que vamos adicionar. Selecione o diretório C:\Zeos\src\component e clique em OK .

Assim ele voltará à tela anterior. Basta clicar em ADD. Repita o mesmo procedimento adicionando todos os diretórios contidos dentro da pasta src, ou seja:
C:\Zeos\src\component
C:\Zeos\src\core
C:\Zeos\src\dbc
C:\Zeos\src\parsesql
C:\Zeos\src\plain
Após ter adicionado todos estes diretórios, pressione OK em todas as janelas e abra o Menu File, Open Project.
Vá até o diretório do Zeos, abra o Sub-diretório packages, e abra a pasta referente a sua versão do Delphi. Dentro desta pasta você encontrará uma package chamada ZeosDbo . Selecione e aperte OK.
Após ter aberta a Package, será aberto o Project Manager do Delphi contendo 5 Arquivos Bpl conforme imagem abaixo:

Seguindo a ordem que abrir, clique com o botão direito sobre o Zcore.bpl e selecione a opção Compile. Aguarde um instante enquanto é compilado o pacote, e depois clique novamente com o botão direito emcima do Zcore.bpl. Selecione a opção Compile.
Se tudo correr bem, você receberá a seguinte mensagem:

Repita este procedimento com todas as outras BPLs, seguindo a ordem de cima para baixo que elas estiverem. O último BPL trará uma mensagem diferente dos demais, exibindo o nome de todos os componentes que foram instalados e no final dizendo que foram instalados com sucesso.
Pronto, está finalizada a Instalação do componente Zeos, uma guia será incluida na sua paleta de Componentes, chamada Zeos Acess. Uma dica que eu sempre dou é a de fechar o Delphi antes de fazer o uso do mesmo. Ao fechar o Delphi, ele perguntará se deseja salvar as packages do Zeos que vocês acabaram de Instalar. Selecione a opção Não.
Bom pessoal, é isso. Agora é só colocar a mão na massa. No próximo artigo irei mostrar como construir um formulário básico de cadastro conectado ao banco MySQL, utilizando o Zeos.
O SQL para a tabela:
CREATE TABLE LOGIN (
LOGIN VARCHAR(20),
SENHA VARCHAR(20)
);
1º passo: Adicione um componente “Zconnection” e mude sua propriedade name para “Zcon”. Também adicione um componente “Zquery” e mude sua propriedade name para “Zquery”. Ainda nas propriedades do Zquery, mude a propriedade Connection para “Zcon”.
2º passo: No evento “FormCreate” do seu form principal, adicione estas linhas:
Dm.Zcon.HostName := ‘localhost’; // Define que o banco encontra-se no servidor local.
Dm.Zcon.Database := ‘Caminho para seu banco’; // Caminho onde se encontra o seu banco de dados
Dm.Zcon.User := ‘Usuario do seu banco’; // Usuário usado para autenticação no banco
Dm.Zcon.Password := ‘Senha do seu banco’; // Senha usado para autenticação no banco
Dm.Zcon.Protocol:= ‘firebird-1.5′; // Define o Banco usado como sendo FireBird 1.5
Dm.Zcon.Connect; // Conecta ao banco
frmLogin.ShowModal; // Abre o form de login(você vai cria-lo mais a frente)
3º passo: Crie um form e mude a sua propriedade name para “frmLogin”.
4º passo: Adicione nesse form “2 labels” e “2 edits” e um Button.
5º passo: Mude a propriedade de um dos edits para “edLogin” e o outro para “edSenha”. Os labels mude os captions para “Login:” e o outro para “Senha:”. O botão, mude sua propriedade name para “btLogin”.
6º passo: Posicione os componentes para que fique uma “tela de login” agradável…
7° passo: No evento onclick do botão, adicione estas linhas:
if (edLogin.Text = '') then
begin
ShowMessage('O campo Login está vazio'); // Se o campo Login estiver vazio, retorna a msg de erro
end
else
if (edSenha.Text = '') then
begin
ShowMessage('O campo Senha está vazio'); // Se o campo Senha estiver vazio, retorna a msg de erro
end
else
begin
btLogin.Enabled := false; // Desativa o botao para que seja evitado o usuario apertar 2 vezes
DM.Zquery.Active := false; // Desativa a query
DM.Zquery.SQL.Clear; // Limpa o atual SQL da query
DM.Zquery.SQL.Append('SELECT FIRST 1 * FROM LOGIN WHERE LOGIN = :Login AND SENHA = :Senha'); // Adiciona o SQL para busca do usuario
DM.Zquery.ParamByName('Login').Asstring := edLogin.Text; // Define o parametro "Login" como sendo o Texto do edLogin
DM.Zquery.ParamByName('Senha').Asstring := edSenha.Text; // Define o parametro "Senha" como sendo o Texto do edSenha
DM.Zquery.Open; // Abre(executa) a busca
if frmPrincipal.Zquery.isEmpty then
begin
ShowMessage(A senha está incorreta!'); // Se a query não retornar resultados, mostra a msg de que a senha está errada
edSenha.Text := ''; // Zera o texto do campo senha
edSenha.SetFocus; // Coloca o focus no campo Senha
btLogin.Enabled := true; // Ativa novamente o botao
end
else
begin
frmLogin.Close; // Se for encontrado resultados, fecha o frmLogin.
end;
end;
O código foi todo comentado e espero ter ajudado aos iniciantes ai… Se tiver algum erro, desculpem-me.. Mas é que fiz tudo de cabeça e não testei…
Obrigado ai… Duvidas e sugestões serão sempre bem-vindas!