MySQL 5 e Firebird 2 no Delphi 2007 com DBExpress
Para os amantes do MySQL e do Delphi, até que enfim a Borland/CodeGear criou um driver DBExpress que funcione no MySQL 5. Pelo que soube, em um dos Borland Conference que participei, o grande problema é que os desenvolvedores do MySQL faziam muitas alterações significativas no núcleo do mysql, o que tornava os drivers da Borland incompatíveis com as novas versões deste banco de dados. O Delphi 2007 veio com uma nova versão do DBExpress, a versão 4, o que tornou os antigos drivers de terceiros, para diversos bancos de dados, incompatíveis com esta nova versão. Drivers como o UIB para Firebird não funcionam mais no Delphi 2007.
O driver DBExpress oficial da Borland/CodeGerar para o Delphi 2007, de nome MySQL funciona, mas somente com versões do MySQL 5.0.27 e 4.1.22*, como informa no arquivo readme.htm na pasta do Delphi 2007, normalmente localizado em C:\Arquivos de programas\CodeGear\RAD Studio\5.0\readme.htm. Este driver funciona com a dll DBExpress de nome dbxMYS30.dll e a libmysql.dll (dll cliente do mysql). Logo, se você tiver um MySQL superior a versão 5.0.27, poderá ter problemas. Para você saber qual a versão do seu mysql, abra o prompt de comando e digite mysql -h localhost -u root -p -v onde -h é para indicar o ip/nome dns do servidor mysql e localhost é o servidor local, -u é para indicar o nome de um usuário, onde usei o usuário root, -p é para informar a senha (a mesma será solicitada após pressionar enter) e -v para mostrar a versão do servidor. Esta versão do driver DBExpress para MySQL funciona com caracteres unicode (um padrão internacional para representação de caracteres de diversas linguagens, que permite que um caractere acentuado, por exemplo, seja representado da mesma forma, independente da linguagem da aplicação/sistema operacional). A versão antiga do driver foi renomeada para dbxmysA30.dll, pois os drivers DBExpress nativos da Borland/CodeGear permitem trabalhar em modo de compatibilidade com o DBExpress 3. A letra A contida no nome do driver indica que o mesmo só aceita caracteres ASCII.
No meu caso, estou utilizando o MySQl 5.0.41 e a aplicação funciona normalmente, mas em tempo de projeto (design time), ocorre um erro informando que a biblioteca libmysql.dll não foi encontrada, e não adianta sair colando ela em tudo que é pasta que lhe vier a cabeça que o Delphi não a encontra. Como podemos não encontrar para baixar a versão 5.0.27 do MySQL, ou outra compatível com o driver DBExpress do Delphi, uma solução seria utilizar uma versão anterior da biblioteca libmysql.dll que pode ser encontrada nos pacotes de instalação do PHP, por exemplo. Você pode baixar a versão 5.0.22 da libmysql.dll, que funciona no Delphi 2007, nesse link, nesse, ou nesse. Basta descompactar esta dll na pasta bin de instalação do Delphi 2007, normalmente em C:\Arquivos de programas\CodeGear\RAD Studio\5.0\bin, que o driver vai funcionar em tempo de projeto no Delphi.
Quanto ao Firebird 2, ainda bem que o colega Thiago Borges de Oliveira desenvolveu um Driver DBExpress 4 gratuito exclusivo para o Delphi 2007, que está em versão Release Candidate, mas testei e tá funcionando direitinho, porém, podem ocorrer problemas por não ser uma versão final. O driver possui um setup que automatiza o processo de instalação, porém, requer o December Update do Delphi 2007 para funcionar, sem ele, até o processo de instalação pode falhar.
Posts relacionados:
- Driver DBExpress 4 para Firebird no Delphi 2007 e 2009
- FeneInfo 2007
- Excluindo Constraints Foreign Key no MySQL (drop constraint)
- Identificadores lowercase em MySql no Windows
- Pegando o último valor de auto incremento inserido no mysql
Posts relacionados trazidos a você pelo Yet Another Related Posts Plugin.




Onde poderia encontrar um atualização do dbexpress para kylix3 para utilizar os bancos mysql5 e 6 e firebird 2?
Cara, o projeto kylix foi abandonado pela borland faz tempo. Acho difícil vc encontrar drivers dbexpress para ele. O que vc pode usar são os componentes open source da biblioteca zeos lib.
Olá Manoel, gostei de uma video aula que você Fez em Delphi , Usando cadastro, com XML. Por isso estou fazendo esta pergunta, tenho certeza que você vai me ajudar
Fiz um sistema em delphi, que controla um banco de dados em access, porem para o executável rodar em outra máquina não funciona, mesmo configurando o Alias, …
gostaria de saber como o programa fuciona em outra máquina.
uma abraço
karlos bahia
email karlosbahia33@bol.com.br
Vc precisa compartilhar a pasta do banco com permissões de gravação. Aí, deve haver um arquivo de configuração
em cada máquina onde a aplicação está, contendo
o caminho do banco. Se for local, será o endereço
da pasta, se for de outro computador na rede
deve estar no formato \\nome_computador_ou_ip\nome_pasta_compartilhada\nome_banco_dados.mdb
Sugiro que no nome do compartilhamento vc inclua
um $ no final, para que o mesmo fique oculto e outros
usuário não saibam da sua existência.
Parar guardar o caminho do BD vc pode usar um
arquivo .ini. Na net vc encontra muitos tutoriais de como
trabalhar com arquivo .ini em delphi.
Espero ter ajudado.
Olá,
gostaria de saber como distribuir a aplicação com dbx e mysql no rad2007 .net, verifiquei os mesmo problemas descrito na matéria acima, na minha máquina funcionou perfeitamente mais no servidor diz que eu tenho que colocar a dbxmysA30.dll no sistem32 e a versão da libmysql.dll não é compativel, já coloquei na raiz da aplicação, na pasta bin e nada e o erro perciste. o que eu devo fazer para rodara aplicação
Vc pode colocar a libmysql.dll, em uma das versões q cito no post,
a midas.dll (que fica na pasta system32 do windows) e a
dbxmys30.dll (a dbxmysA30.dll é a versão antiga, não aceita
caracteres UTF, apenas ASCII),
tudo na pasta da aplicação.
A midas.dll precisa ser registrada com o comando regsvr32 -i c:\caminho\midas.dll no prompt de comando.
Boa Noite Manoel..
Vi uma video aula sua boa sobre mysql com dbExpress mais Delphi 7. Gostaria de saber se existe algum driver dbExpress para Mysql 5.1 que funcione no Delphi 2007.
Desde já agradesço.
O próprio driver mysql que vem com o delphi 2007 funciona razoavelmente. Existem outros mas são todos pagos.
Olá amigos, meu humilde comentário é que deveria uniformizar esse drives, poxa pra que tantas diferenças e incompatibilidades???
Vamos facilitar!
Link para baixar o MySQL 5.0.27 http://www.filehippo.com/download_mysql/1887/
Olá Manoel,
naum consigo efetuar consultas no delphi com banco mysql e dbexpress,
preciso de sua ajuda…
estou desenvolvendo uma aplicação que consulta por data de nascimento e por nome..
como faço..