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.