MySQL x Delphi 7 dbExpress

Delphi

05/04/2003

Olá, Estou com problemas quando tento me conectar ao banco. Surge a mensagem: unable to load libmysql.dll

Estou com o mySQL 4.00.12 instalado e o arquivo libmysql.dll foi copiado para a pasta windows\system.

Será um problema da função getSQLDriverMYSQL (definida na propriedade GetDriveFunc) que carrega o driver do MySQL?

Obrigado,
saulosls@yahoo.com.br


Anonymous

Anonymous

Curtidas 0

Melhor post

Stjosimar

Stjosimar

24/05/2008

Depois de procurar muito pra saber como conectar o MySQL 5 ao Delphi 7, encontrei no fórum da Devmedia uma resposta a esta dúvida, resolvi lapidar e transformá-lo em um artigo, pois creio que seja uma dúvida de vários desenvolvedores. Como todos nós sabemos os componentes da DBExpress
no Delphi 7 somente suporta até o MySQL 4.x, devemos então baixar uma dll que
nos servirá para esta conexão. Este artigo leva em consideração que você tenha instalado
o MySQL 5 em seu computador. Se acaso não estiver baixe-o
clicando aqui.
http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.45-win32.zip/from/http:/mysql.cs.pu.edu.tw/

1. Faça o download do driver aqui. http://www.planetadelphi.com.br/delphi/componentes/banco_de_dados/00004551.rar

Descompacte este arquivos e copie o arquivo dbxopenmysql50.dll para a pasta ´C:\Arquivos de programas\Borland\Delphi7\Bin\´.
2. Abra o arquivo dbxdrivers.ini localizado na pasta ´C:\Arquivos de programas\Arquivos comuns\Borland Shared\DBExpress´ com
o editor de sua preferência. Altere as seguinte linhas.
a) Na seção [Installed Drivers] adicione a seguinte linha.
MySQL50=1
b) E logo após esta seção adicione o seguinte conteúdo:
[MySQL50]
GetDriverFunc=getSQLDriverMYSQL50
LibraryName=dbxopenmysql50.dll
VendorLib=libmysql.dll
HostName=ServerName
Database=DBNAME
User_Name=user
Password=password
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
Salve e feche o arquivo.
3. Copie o arquivo libmySQL.dll localizando em ´C:\Arquivos de programas\MySQL\MySQL Server 5.0\bin´ para a pasta
´C:\Windows´.
4. Abra o Delphi 7 e adicione uma SQLConection(DBExpress), SQLQuery(DBExpress), DataSetProvider(Data Access),
ClientDataSet(Data Access) e DataSource(Data Access).
Faça a ligacação com o banco de dados. Clique duplo no SQLConection, clique em add, selecione MySQL50 e de um nome a sua
conexão e OK, configure os parâmetros Hostname, Database, User e Password. De um ok nesta janela e altere a propriedade
LoginPrompt para False e Connected para True. Sua conexão estará feita, caso de erro revise os passos anteriores.
Ligue o SQLQuery ao SQLConection e digite na propriedade SQL.
select * from nome_da_tabela
Configure o DataSetProvider ao SqlQuery, o ClientDataset ao Provider e o DataSource ao ClientDataSet, de um duplo clique no
ClientDataSet e de um Ctrl + F para adicionar os campos agora você já estará podendo trabalhar com o MySQL 5 no Delphi 7.
Uma coisa curiosa que eu notei e que se o componente utilizado for SQLDataSet ao invés de um SQLQuery o mesmo só fará a
conexão com o MySQL 5 se a propriedade CommandType for uma ctQuery, se for ctTable ela listará todas as tabela do banco
porém ao tentar adicionar os campos no mesmo ele mostrará a seguinte menssagem ´Incorrect DataBase Name´, creio eu que seja
devido a própria estrutura do MySQL que não permite tal conexão. Espero ter ajudado.
Primeiramente gostaria de agredecer a Deus por poder escrever este artigo e depois ao usuário lucasfss
fórum da Devmedia, pois foi através dele que me deu inspiração pra escrever este artigo.
Um Grande abraço e bom Desenvolvimento para todos ;)


GOSTEI 1

Mais Respostas

Anonymous

Anonymous

05/04/2003

Olá, Estou com problemas quando tento me conectar ao banco. Surge a mensagem: unable to load libmysql.dll Estou com o mySQL 4.00.12 instalado e o arquivo libmysql.dll foi copiado para a pasta windows\system. Será um problema da função getSQLDriverMYSQL (definida na propriedade GetDriveFunc) que carrega o driver do MySQL? Obrigado, saulosls@yahoo.com.br


Baixe o componente Zeos, que é free e que é exclusivo para uso mysql, sqlserver e postgress


GOSTEI 0
Anonymous

Anonymous

05/04/2003

O seu problema é em Library Name ao invés de ´dbexpmys.dll´ coloque:
´dbexpmysql.dll´.
Vai funcionar


GOSTEI 0
Trampo

Trampo

05/04/2003

Algumas dicas:
No componente

MySQLConnection, as propriedades:
1 - LibraryName deve ser modificada para dbExpmysql.dll se MySQL for 3.23 ou superior
2 - VendorLib deve ser: C:\mysql\bin\LIBMYSQL.DLL ou, se preferir, esta dll deve ser copiada para um diretório da PATH, como C:\WINDOWS\SYSTEM32

Agora sim, escolha o driver MySQLConnetcion e configure a conecção.


GOSTEI 0
Anonymous

Anonymous

05/04/2003

Olá pessoal,

Obrigado pelas respostas, mas eu já tinha tentado isso.. quanto a pasta SYSTEM32 ela é válida se o SO for NT ou XP. No caso do win98 a pasta é SYSTEM. Já tinha também observado a alteraçao do nome em LibraryName. A questão agora (prá tirar a limpo). Vocês usam o Delphi 7 ou o Delphi 6/5?

Acho que é um bug do Delphi 7!

Uma outra questão este componente Zeos: Ele age independentemente do demais componentes da paleta dbExpress ou trabalha em conjunto?

Um abraço a todos.


GOSTEI 0
Sventuri

Sventuri

05/04/2003

cara, fiz da forma que voce falou mas na hora de executar da o seguinte erro:

Access violation at address 00CC44EF in module ´dbxopenmysql50.dll´


GOSTEI 0
Jeancarissimi

Jeancarissimi

05/04/2003

Estou com o mesmo problema do SVenturi.. ://


GOSTEI 0
Yallebr

Yallebr

05/04/2003

Amigos já utilizei MySQL e mudei para o FireBird justamente por essa incompatiblidade. Fica uma sugestão.

Abraço


GOSTEI 0
Sownray

Sownray

05/04/2003

Olá amigos, uso o mysql 5 com delphi 7 sem problemas, faça o seguinte, depois de configurar os arquivos na pasta DBEXPRESS, coloque a dll em questão na pasta system32 do seu windows, qualquer coisa entre em contato.


GOSTEI 0
Sownray

Sownray

05/04/2003

ia me esquecendo, vc tb pode copiar as dll´s na propria pasta onde se encontra seu exe, codigo fonte, que tb dá certo.

dll = dbxopenmysql50 e libmysql


GOSTEI 0
Osocram

Osocram

05/04/2003

Aqui no serviço estou tendo q usar o MySql tbm.. tive este prob. no começo. Mas o erro é pq ele não encontra as dll do MySql.
Eu utilizo normalmente agora... peguei a dll e joguei no diretorio do meu aplicativo... funciou.. dae tirei de la e joguei na system do windows e funcionou tbm.

exatamente oq o amigo sownray comentou.... Era o que eu fiz aqui e funcionou.
ia me esquecendo, vc tb pode copiar as dll´s na propria pasta onde se encontra seu exe, codigo fonte, que tb dá certo. dll = dbxopenmysql50 e libmysql



GOSTEI 0
Daniel Brito

Daniel Brito

05/04/2003

Olá amigos, uso o mysql 5 com delphi 7 sem problemas, faça o seguinte, depois de configurar os arquivos na pasta DBEXPRESS, coloque a dll em questão na pasta system32 do seu windows, qualquer coisa entre em contato.



Prezados fiz tudo como nos tutoriais, no meu pc funcionou normalmente, mas quando o coloco o sistema nas estacoes mesmo copiando as dlls para suas respectivas pastas nao abre por conta dessas dlls como = DBXOPENMYSQL50.DDL
GOSTEI 0
POSTAR