Segunda-feira, 04 de julho de 2005 às 13h12

Conexão nativa com banco de dados no Delphi

Olá pessoal. Este é o meu primeiro artigo no iMasters e espero que seja de grande utilidade para todos. Caso queiram enviar sugestões para os próximos artigos, será um prazer recebê-las.

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.

Abraço!

44 comentários

 Gustavo Henrique A S A Moura
11/07/2005 19h41

Delphi 2005

Este componente (ZEOS) funciona no Delphi 2005

 Oscar Oliveira
07/05/2008 17h45

Boa Tarde Pessoal, Parabens pelo artigo mas teria uma correção a ser feita. No texto 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."

troque-o por:

"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 em cima do Zcore.bpl e agora clique em Install."

Abraços



 Oscar Oliveira
07/05/2008 17h45

Boa Tarde Pessoal, Parabens pelo artigo mas teria uma correção a ser feita. No texto 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."

troque-o por:

"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 em cima do Zcore.bpl e agora clique em Install."

Abraços



 Nielsen Valença
01/09/2005 23h00

ZCore.dpk(29): Required Package 'rtl' not found

Ae blz?
Instalei o Zeos, na hora de compilar da pau.
Fiz tudo direitinho como nos tutoriais, mas deu o erro:

[Fatal Error] ZCore.dpk(29): Required Package 'rtl' not found

O Que pode Ser?
Uso o Delphi 7

Se puder ajudar agradeço,

 Giovani Madeira
21/10/2005 16h16

ZEOS - lib - Delphi

Não consegui instalar deu o erro
[Error] ZDbc.dpk(83): 'END' expected but identifier 'ZDbcASAUtils' found

 leo mello
25/10/2005 20h46

ZEOS - lib - Delphi

Segui todo os passos deu beleza até a parte de compilar de lá não sai clico no Zcore.bpl e compilo mas nada acontece e se copilo os outros
dar o erro
[Error] ZDbc.dpk(83): 'END' expected but identifier 'ZDbcASAUtils' found
Se puder ajudar te agradeço.

 Ralf Araújo Ruas
26/10/2005 12h47

Erro ao instalar Zeos

Fala ae! Estou tentando instalar o zeos no meu pc, mas fiquei em duvida num certo ponto, qdo vc pede pra compilar cada um dos BPLs do componente e irá aparecer a mensagem de sucesso, realizei isso varias vezes e não retornou nenhuam msg de conclusão. Onde posso estar errando? Uso a versão 7 do delphi, rodando no winXP. Valeu! ;)

 Daniel Dias
27/10/2005 19h28

o download do Zeos não funcionou

Esse tal de Zeos não faz download de geito nenhum quando faz aparece um erro quando tento acessa-lo pelo winzip.

 Wariston Fernando Pereira
30/10/2005 13h28

Delphi 7 Solução

Galera o problema é um ";" (PONTO E VIRGULA) sobrando la... uma linha antes do erro.. substituam ele por (VIRGULA) e pronto!!!!!

 leo mello
01/11/2005 14h27

Zeos

Estou tentando instalar o zeos , mas mas qdo vc pede pra compilar cada um dos BPLs do componente e irá aparecer a mensagem de sucesso, realizei isso varias vezes e não retornou nenhuam msg de conclusão. Onde posso estar errando? Uso a versão 7 do delphi, rodando no winXP. Valeu! ;)

 leo mello
01/11/2005 20h15

Zeos Ufa!!

Pra quem compilava e não aparececia nada, mandei dar un install no ZComponent.bpl e finalmente instalou.....

 Leandro
05/01/2006 11h21

Erro Zeos - Delphi 5

Quando estou compilando o modulo Zdbc.bpl ele gera um erro: [Fatal Error] ZDbcMySqlStatement.pas(96): File not found: 'DateUtils.dcu'.

 Edgard Matos
16/01/2006 15h20

Erro ao compilar

Ao compilar a ZDBc.Bpl dá esse erro ai

[Error] ZDbc.dpk(84): 'END' expected but identifier 'ZDbcASAUtils' found

não finalizando dai..o que está errado, fiz todos os passos acima. Obrigado

 Paulo Kalil
17/01/2006 14h43

Eu tb estou tendo esse erro

ZDBc.Bpl dá esse erro ai [Error] ZDbc.dpk(84): 'END' expected but identifier 'ZDbcASAUtils' found

 Paulo Kalil
17/01/2006 15h10

Consegui consertar o erro

O problema é simples. Na linha anterior a linha onde o erro aparece, substitua o ponto e virgula por uma virgula. Vai compilar sem erro.

 ramilton
19/01/2006 12h00

erro ao compilar o pacote zcomponet

ocorre o seguinte erro ao compilar o pacote zcomponent.. alguem pode me ajudar... outra coisa quando fui abrir o pacote zeosdbo nao existia nao... ai eu abri os outros pacote na mesma ordem da imagem que apareceu os pacotes...
[Error] ZComponent.dpk(33): Packages 'ZDbc' and 'ZParseSql' both contain unit 'ZGenericSqlToken'

 Thiago Scavacini Betelli
17/03/2006 00h17

Duvida?

Thiago Marcel
Caso no final da Conexão nativa não apresentar a janela de " Informatin".
Como devo proceder.

 Wagner
28/03/2006 15h09

Erro no Delphi5

Amigos segui todos os procedimentos e funcionou legal no Delphi7, porém, no Delphi5 dá um erro ao compilar a package ZDBc.Bpl ->
diz assim: File not found: DateUils.dcu

 Gilberto Godoy
28/05/2006 02h01

Zeos e Delphi 2005

Gostaria de saber se alguém instalou no Delphi 2005

 Silvio Santos
28/05/2006 14h38

Acesso Remoto ao MySQL c/ Zeos/Delphi

Muito bom este artigo.

Alguns dizem que não conseguem acessar um banco remotamente. Claro! Isso é devido as caracteríticas do servidor que você está trabalhando.

Se alguém quiser fazer um teste use estes dados no Zeos:

HostName: hostconection.com
Port: 3306
Database: imasters_banco
User: imasters_usuario
Password: senha

Neste banco há um tabela para teste com a seguinte estrutura:

CREATE TABLE `imasters` (
`id` INT NULL AUTO_INCREMENT PRIMARY KEY ,
`nome` VARCHAR( 50 ) NOT NULL ,
`email` VARCHAR( 50 ) NOT NULL ,
`cidade` VARCHAR( 50 ) NOT NULL ,
`uf` CHAR( 2 ) NOT NULL
);

Suficiente para todos testarem, não?

Podem inserir, alterar, deletar e selecionar seus dados a vontade.

A partir daqui é com cada um dos interessados.

Estou preparando um servidor somente para:

Delphi, Zeos, MySQL

Isso mesmo! Aqueles que quiserem hospedar seu banco MySQL em um servidor remoto com segurança e desempenho, entre em contato e durma tranquilo.

Outros clientes já estão utilizando isso e com satisfação.

Caso queira testar sem desenvolver um aplicativo teste, baixe este:
http://www.hostconection.com/sistema.exe

Antes te testar com o seu próprio aplicativo ou com este acima, verifique se baixou as dll's no diretórios system32, conforme tutorial Zeos "Conexão nativa com banco de dados no Delphi" do site imasters.com.br.

Abraços.

Silvio Santos

info@hostconection.com
Celular: (65) 8414-5746
www.hostconection.com

 Silvio Santos
28/05/2006 14h39

Acesso Remoto MySQL

Muito bom este artigo.

Alguns dizem que não conseguem acessar um banco remotamente. Claro! Isso é devido as caracteríticas do servidor que você está trabalhando.

Se alguém quiser fazer um teste use estes dados no Zeos:

HostName: hostconection.com
Port: 3306
Database: imasters_banco
User: imasters_usuario
Password: senha

Neste banco há um tabela para teste com a seguinte estrutura:

CREATE TABLE `imasters` (
`id` INT NULL AUTO_INCREMENT PRIMARY KEY ,
`nome` VARCHAR( 50 ) NOT NULL ,
`email` VARCHAR( 50 ) NOT NULL ,
`cidade` VARCHAR( 50 ) NOT NULL ,
`uf` CHAR( 2 ) NOT NULL
);

Suficiente para todos testarem, não?

Podem inserir, alterar, deletar e selecionar seus dados a vontade.

A partir daqui é com cada um dos interessados.

Estou preparando um servidor somente para:

Delphi, Zeos, MySQL

Isso mesmo! Aqueles que quiserem hospedar seu banco MySQL em um servidor remoto com segurança e desempenho, entre em contato e durma tranquilo.

Outros clientes já estão utilizando isso e com satisfação.

Caso queira testar sem desenvolver um aplicativo teste, baixe este:
http://www.hostconection.com/sistema.exe

Antes te testar com o seu próprio aplicativo ou com este acima, verifique se baixou as dll's no diretórios system32, conforme tutorial Zeos "Conexão nativa com banco de dados no Delphi" do site imasters.com.br.

Abraços.

Silvio Santos

info@hostconection.com
Celular: (65) 8414-5746
www.hostconection.com

 Silvio Santos
28/05/2006 15h13

Me desculpem

Me desculpem. Não foi minha intenção postar comentário repetido. Acontece que eu cliquei no botão enviar e parecia não estar respondendo. Aí cliquei por mais vezes.

 FABIO WALTER
07/07/2006 20h38

SOLUÇÃO

Não consegui instalar deu o erro [Error] ZDbc.dpk(83): 'END' expected but identifier 'ZDbcASAUtils' found
Para quem o delphi apresentou esta mensagem ache no código a linha em que ocorreu o erro! E substitua o ';' que está no final da linha anterior! Mande compilar novamente então como um de nossos colegas já postou mais abaixo clique em Install sobre o ZComponent.bpl e pronto feche e abra o Delphi!!! Espero ter ajudado.

 FABIO WALTER
07/07/2006 20h38

SOLUÇÃO

Não consegui instalar deu o erro [Error] ZDbc.dpk(83): 'END' expected but identifier 'ZDbcASAUtils' found
Para quem o delphi apresentou esta mensagem ache no código a linha em que ocorreu o erro! E substitua o ';' que está no final da linha anterior! Mande compilar novamente então como um de nossos colegas já postou mais abaixo clique em Install sobre o ZComponent.bpl e pronto feche e abra o Delphi!!! Espero ter ajudado.

 FABIO WALTER
07/07/2006 20h38

SOLUÇÃO

Não consegui instalar deu o erro [Error] ZDbc.dpk(83): 'END' expected but identifier 'ZDbcASAUtils' found
Para quem o delphi apresentou esta mensagem ache no código a linha em que ocorreu o erro! E substitua o ';' que está no final da linha anterior! Mande compilar novamente então como um de nossos colegas já postou mais abaixo clique em Install sobre o ZComponent.bpl e pronto feche e abra o Delphi!!! Espero ter ajudado.

 FABIO WALTER
07/07/2006 20h38

SOLUÇÃO

Não consegui instalar deu o erro [Error] ZDbc.dpk(83): 'END' expected but identifier 'ZDbcASAUtils' found
Para quem o delphi apresentou esta mensagem ache no código a linha em que ocorreu o erro! E substitua o ';' que está no final da linha anterior! Mande compilar novamente então como um de nossos colegas já postou mais abaixo clique em Install sobre o ZComponent.bpl e pronto feche e abra o Delphi!!! Espero ter ajudado.

 Rafael Capucho
31/07/2006 21h37

Esse artigo é furado

o imaster deveria pedir para alguem refazer o mesmo, pois há muitos problemas, que implicam também na parte 2 do artigo que mesmo instalando o plugin, obtive erros futuros!

 Rafael Capucho
31/07/2006 21h37

Esse artigo é furado

o imaster deveria pedir para alguem refazer o mesmo, pois há muitos problemas, que implicam também na parte 2 do artigo que mesmo instalando o plugin, obtive erros futuros!

 Rafael Capucho
31/07/2006 21h38

Esse artigo é furado

o imaster deveria pedir para alguem refazer o mesmo, pois há muitos problemas, que implicam também na parte 2 do artigo que mesmo instalando o plugin, obtive erros futuros!

 Rodrigo Nascimento
16/08/2006 11h22

Zeos lib compilado e instalado no Delphi 7

O problema com o ZdbcASAUtils é devido a dois erros na distribuição do Zeoslib. Uma é falta do arquivo ZdbcASAUtils.pas dentro do pacote Zdbc.bpl, para sanar este erro clique com o botão direito sobre Zdbc.bpl e use a opção ADD, localize o arquivo .pas respectivo e adicione ao pacote. Atenção, apos este procedimento será adicionado uma linha de comando a mais no pacote e esta deve ser excluída por ser repetida >> linha(ZDbcASAUtils in '..\..\src\dbc\ZDbcASAUtils.pas',). O segundo erro é um erro de sintaze, onde a (,) foi substituida por (;). Quando o compilador Delphi localizar a linha troque o(;) por (,).

Um comentário.: Segui todos os passos do tutorial, corrigi os problemas acima e no final usei a opção INSTALL sobre o pacote ZComponent.pbl e a instalação ocorreu sem problemas.

 Rodrigo Nascimento
16/08/2006 11h22

Zeos lib compilado e instalado no Delphi 7

O problema com o ZdbcASAUtils é devido a dois erros na distribuição do Zeoslib. Uma é falta do arquivo ZdbcASAUtils.pas dentro do pacote Zdbc.bpl, para sanar este erro clique com o botão direito sobre Zdbc.bpl e use a opção ADD, localize o arquivo .pas respectivo e adicione ao pacote. Atenção, apos este procedimento será adicionado uma linha de comando a mais no pacote e esta deve ser excluída por ser repetida >> linha(ZDbcASAUtils in '..\..\src\dbc\ZDbcASAUtils.pas',). O segundo erro é um erro de sintaze, onde a (,) foi substituida por (;). Quando o compilador Delphi localizar a linha troque o(;) por (,).

Um comentário.: Segui todos os passos do tutorial, corrigi os problemas acima e no final usei a opção INSTALL sobre o pacote ZComponent.pbl e a instalação ocorreu sem problemas.

 Rodrigo Nascimento
16/08/2006 11h24

Zeos Instalada no D7...

O problema com o ZdbcASAUtils é devido a dois erros na distribuição do Zeoslib. Uma é falta do arquivo ZdbcASAUtils.pas dentro do pacote Zdbc.bpl, para sanar este erro clique com o botão direito sobre Zdbc.bpl e use a opção ADD, localize o arquivo .pas respectivo e adicione ao pacote. Atenção, apos este procedimento será adicionado uma linha de comando a mais no pacote e esta deve ser excluída por ser repetida >> linha(ZDbcASAUtils in '..\..\src\dbc\ZDbcASAUtils.pas',). O segundo erro é um erro de sintaze, onde a (,) foi substituida por (;). Quando o compilador Delphi localizar a linha troque o(;) por (,).

Um comentário.: Segui todos os passos do tutorial, corrigi os problemas acima e no final usei a opção INSTALL sobre o pacote ZComponent.pbl e a instalação ocorreu sem problemas.

 Rodrigo Nascimento
16/08/2006 11h27

Zeos instalada no D7.(OK)

O problema com o ZdbcASAUtils é devido a dois erros na distribuição do Zeoslib. Uma é falta do arquivo ZdbcASAUtils.pas dentro do pacote Zdbc.bpl, para sanar este erro clique com o botão direito sobre Zdbc.bpl e use a opção ADD, localize o arquivo .pas respectivo e adicione ao pacote. Atenção, apos este procedimento será adicionado uma linha de comando a mais no pacote e esta deve ser excluída por ser repetida >> linha(ZDbcASAUtils in '..\..\src\dbc\ZDbcASAUtils.pas',). O segundo erro é um erro de sintaze, onde a (,) foi substituida por (;). Quando o compilador Delphi localizar a linha troque o(;) por (,).

Um comentário.: Segui todos os passos do tutorial, corrigi os problemas acima e no final usei a opção INSTALL sobre o pacote ZComponent.pbl e a instalação ocorreu sem problemas.

 Lauricio Dill
19/08/2006 14h41

Compila mas não aparece mensagem de instalação

tudo funciona bem depois da correção (;->,)mas não instala os pacotes. :-( alguem pode me ajudar?

 Lauricio Dill
19/08/2006 14h47

Compila mas não aparece mensagem de instalação

tudo funciona bem depois da correção (;->,)mas não instala os pacotes. :-( alguem pode me ajudar?

 samuel marcondes
05/10/2006 00h44

Perfeito

É só seguir as explicações que não tem erro!!! funcionou perfeitamente!!!

 samuel marcondes
05/10/2006 00h44

Perfeito

É só seguir as explicações que não tem erro!!! funcionou perfeitamente!!!

 samuel marcondes
05/10/2006 00h44

Perfeito

É só seguir as explicações que não tem erro!!! funcionou perfeitamente!!!

 JOSE HAROLDO SENA FILHO
08/10/2006 11h16

Referente ao comentário Publicado por Ralf Araújo Ruas, 26/10/2005 12:10

Eu estou com a versão 7 do Delphi, com o Windows XP e dá o problema que o rapaz reportou. O que proceder?

 Fabiano Gaspar
15/08/2007 12h56

Erro de Compilacao

Galera... ao invés de compile tem de ser install... ae dá certo... aparece as janelas inforamando o sucesso da instalação... do jeito da explicação...
Um abraço e vlw...

 Marcus Augusto
18/04/2008 23h38

Duvida - ZEOS QuickReport

Boa noite Tiago, vi seu artigo no imasters e gostei mto, usei seu artigo para migrar de ADO para ZEOS com sucesso, funcionou bem comigo. Só tô com um problema que vai um pouco mais alem

E vim pedir sua ajuda, desculpe invadir sua privacidade usando o e-mail pessoal, mas é que tô curioso pra saber como resolvo isso, aposto que é coisa pequena, simples... mas que eu naum sei rsrsrsrs


... quando vou fazer relatórios no QuickReport mesmo, na linha de detail aparece só uma linha, geralmente a primeira da tabela ou query...

Porem tô perdido sobre isso...

 Hugo Cordeiro
19/01/2009 20h00

Erro...

[Error] ZSqlUpdate.pas(112): Undeclared identifier: 'UpdateAutoIncrementFields'
Alguem ajude plz....
Someone help please...

 Bruno César Barreto de Figueirêdo
30/03/2009 13h58

Não Instala

Antes de mais nada, gostaria de parabenizar pelo artigo. Fácil e prático, indo direto ao ponto.
Eu utilizo o Vista e estou tentando usar o Delphi 7. O problema foi na hora de instalar o componente, ele dá uma mensagem dizendo que não pode instalar por que não se trata de um "Desing Time Package". Alguém pode me ajudar ?

Agradeço,

Bruno

 Ana Moura
07/10/2009 02h31

Documentação do zeeeos!

Pessoal
Preciso de uma apostila/artigo/documento que fale sobre a função de cada um dos componentes. Uso somente 2 deles, por n saber o que os outro fazem exatamente. Não achei nada na net
se alguém tiver me passe o link
obrigada

Cancelar resposta

Qual a sua opinião?

Faça login abaixo ou cadastre-se rapidamente.


Sobre o Autor
Tiago Marcel Knipers É Especialista em Tecnologia da Informação na Gestão Integrada de Negócios, sua formação é em Sistemas de Informação e atua no desenvolvimento de sistema de Gestão Empresarial (ERP) na Senior Sistemas Corporativos em Blumenau/SC.

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.