segunda-feira, 14 de maio de 2007

Conexão: Delphi 2006 x DBExpress x MySQL 5.0

E ae rapaziada, hoje vou escrever um breve tutorial de como integrar Delphi 2006 x DBExpress x Mysql 5.0. Graças a uma DLL que encontrei no site “Just Software Solution” isso será possível com apenas algumas configurações, vamos lá!

Clique aqui e baixe as 2 DLL's responsáveis pela Conexão

  • dbxopenmysql50.dll > Driver do DBExpress

  • libmysql.dll > Responsável pela comunicação com o Banco

Recomendamos que deixe ambas DLL's no diretório da sua aplicação, pois pode existir essas dlls na sua System32 com o mesmo nome mas que não são compatíveis com o nosso propósito.

Vamos então fazer uma configuração para o funcionamento. Editando um arquivo que está em:

C:\Arquivos de programas\Borland\BDS\4.0\dbExpress
(Ou o diretório da sua instalação + 4.0\dbExpress)

Editando o arquivo: dbxdrivers.ini

(Recomendo que você faça um backup desse arquivo)

Aonde estiver [Installed Drivers] acresente: OpenMySQL50=1, ficando por exemplo dessa maneira:


[Installed Drivers]

DB2=1
Interbase=1
MySQL=1
Oracle=1
Informix=1
MSSQL=1
ASA=1
ASE=1
OpenMySQL50=1

E também coloque logo abaixo disso, a descrição do drive:

[OpenMySQL50]

LibraryName=dbxopenmysql50.dll
GetDriverFunc=getSQLDriverMYSQL50
VendorLib=libmysql.dll
HostName=localhost
Database=NomeBD
User_Name=root
Password=senha

Agora vamos abrir o Delphi 2006 e colocar 6 componentes:

SqlConnection
SqlTable
DataSetProvider
ClientDataSet
DataSource
DBGrid

No SQLConnection dê um duplo clique e vamos criar uma nova conexão, notem que o nosso novo drive está disponível (OpenMySQL50), crie uma nova conexão, coloque os dados do seu banco de dados, ficará parecido com algo assim:





Dica: Assim que sua conexão estiver concluída, no seu SqlConnection1 deixe a opção LoginPrompt = False (Para não pedir a senha do Banco de Dados toda hora que você for conectar)


Ligando os outros componentes:


No SQLTable1:
SQLConnection: SQLConnection1
TableName: “Alguma tabela que tenha no seu banco de dados”

No DataSetProvider1:
DataSet: SQLTabel1

No ClientDataSet1:
ProviderName: DataSetProvider1

No DataSource1:
DataSet: ClientDataSet1

No DBGrid1:
DataSource: DataSource1

Se tudo estiver correto, só dar Active = True no seu ClientDataSet1 e os dados estarão no seu DBGrid.



Neste exemplo usamos o SQLTable, mas podemos usar o SQLDataSet, ou o SQLQuery normalmente para manipularmos os dados.

11 comentários:

demo disse...

Valeu a dica!

tava apanhando aqui pro meu bds, tinha quase desistido do MySql e indo pro firebird...

Grato

Unknown disse...

Foi ótima a dica, você salvou um usuário que admira a performance do mysql e quase desisti, você tem minha consideração...

Victor Stifler disse...

Se eu entendesse algo que estava escrito estaria pulando de alegria


hahaha

Valeu pelo comentário costaaaa

Unknown disse...

Aleluia irmão!!!

consegui conectar no mysql 5.0.67

hehehehe

um abraço

Neuber Ramos disse...

Show de bola... valeu pela dica!!!!
Abç
Neuber

Banda Estado Bruto disse...

Então.. achei super legal a dica.. mas estou com uma dúvida. quando for distribuir a aplicação (em rede) terei de levar o arquivo de configuração do dbExpress tmb? o DbXdrivers.ini...

Adailson Reis disse...

MUITO BOM, CARA ME AJUDOU BASTANTE!
OBRIGADO!

oprixleikasolid disse...

valeu.. salvou o dia aqui.. hehe...

oprixleikasolid disse...

opa.. muito bom salvou o dia aqui.. hehe.. valeu pelo post.

Marcelo disse...

Muito boa a dica, simples e funcional!!! Para quem tem servidor mysql em provedor segue um artigo para complementar: http://www.vivaolinux.com.br/dica/Ubuntu-6-com-MySQL-permitindo-conexao-remota , pois é necessário configurar o banco para aceitar conexões remotas. Abs Marcelo http://www.cevicom.com.br

ElFreire disse...

Olá Tiago. Muito boa sua dica.

Estou recebendo a mensagem "Falha catastrófica", você saberia me dizer porque isso acontece?

Att,
Eduardo