dbExpress suporte ao MySQL no Delphi 2010 e XE

Parece ser frequente as dúvidas relacionadas a utilização do driver dbExpress para MySQL, na grande maioria usuários das versões 2010 e XE do Delphi.

O arquivo readme.html que está localizado no diretório onde o Delphi foi instalado, documenta as versões de MySQL e dos outros bancos suportados pelo dbExpress. No caso do MySQL o arquivo inclui as combinações de versões de server e bilbiotecas clientes suportadas, infelizmente o MySQL a cada nova versão traz inúmeras alterações nas API’s e acabe dificultando uma pouco nosso trabalho.

Abaixo informações que você deve saber.

Versões de servidores MySQL oficialmente suportadas e testadas.

MySQL 5.1, 5.0.27, 4.1 (Todas) (Driver dbxMYS.dll, Client libmysql.dll)

Combinação das versões de servidores e clientes MySQL que foram testadas

  • LibMySQL.dll (5.1.XX) Client  – DBXMys.dll MySQL 4.0.XX Server
  • LibMySQL.dll (5.1.XX) Client  – DBXMys.dll MySQL 5.0.XX Server
  • LibMySQL.dll (5.1.XX) Client  – DBXMys.dll MySQL 5.1.XX Server

Em resumo, você tem que instalar a versão do cliente do MySQL 5.1.xx para que sua aplicação cliente funcione com servidores MySQL 4.0.XX, 5.0.XX e 5.1XX

O que fazer caso você tenha outras versões do Delphi na mesma máquina?

Caso isso aconteça o IDE poderá carregar uma das versões antigas do driver dbExpress para MySQL, isso acontece porque o diretório bin da versão anterior do Delphi está a frente na variável de sistema PATH, para resolver este problema, no menu Tools -> Options -> Environment Variables adicione o PATH da versão atual do Delphi a frente de todas as variáveis. Lembre-se que casa você use a versão anterior instalada na sua máquina, você deverá atualiza a variável de ambiente PATH novamente.

Espero que essas dicas tenham ajudado.

15 respostas
  1. Marcos Paulo dos Santos
    Marcos Paulo dos Santos says:

    Olá Andreano, gostaria de dizer que ainda acho as versões novas do Help no Delphi um muito confusas e pouco intuitivas, as versões que acompanhavam até a versão 7 do Delphi eram mais fáceis de usar e localizar as informações; vocês tem alguma previsão de melhoria para as futuras versões?

    Responder
  2. wesley
    wesley says:

    Olá Andreano !
    estou uzando zeus pra fazer conecao com mysql no delphi 7 mas quando migro pro d2010 e uso uma select na query ele da um erro de compatibilidade de versao mas quando vou pro d2009 funciona normal ja aconteceu com vc. aguardo retorno!

    Responder
    • Andreano Lanusse
      Andreano Lanusse says:

      Oi Wesley,

      Comigo não, talvez você não esteja com a versão correta. Coloca sua dúvida na lista-delphi do yahoo, tem muita gente que usa Zeus lá.

      Responder
  3. Lucas
    Lucas says:

    Andreano, ainda falando de DBX, no recurso de metadata, como é possível adicionar uma coluna a uma tabela já existente?

    Já que Provider.CreateTable(TDBXTable) cria a tabela…

    Obrigado!

    Att.,

    Responder
  4. Rick
    Rick says:

    Andreano

    Não consigo fazer o “Embarcadero RAD Studio XE” C++ Builder funcionar com o MYSQL 5.1.56

    Eu entendo que deve ter uma combinação correta entre as DLLs libmysql.dll e DBXMys.dll

    Como descubro a versão de uma DLL? Clico com o botão direito do mouse vou em propriedades e lá tem Versão do arquivo dbxmys.dll 15.0.3890.34076.

    O problema é que não sei de onde pegar estas DLLs a DBXMys.dll já vem com o C++ builder então nem mexi mas e a libmysql.dll tentei de tudo.

    Falta documentação.

    Uso window 7 – 64 bits

    Já até postei no fórum da embarcadero um cara teve o mesmo problema em 2009 e ainda não responderam ele, estou seriamente pensando em migrar para o MS Visual Studio me falam que não tem estes problemas de integração com o SQL Server.

    https://forums.embarcadero.com/thread.jspa?messageID=371315#371315

    Qualquer luz por favor ajude estou já a dois dias nisto não gosto de pedir ajuda antes de pesquisar, mas isto aqui está se tornando um pesadelo.

    A conexão via ODBC eu consigo fazer normalmente mas a segurança é ridicula o odbcad32 grava a senha em TXT no registro do windows é muito fácil de descobrir!

    Responder
    • Andreano Lanusse
      Andreano Lanusse says:

      Rick,

      Você tem que ter as dlls 32 bits do MySQL, se você está usando dll 64bits nunca irá funcionar. Verifique o instalador do seu MySQL ele traz a versão do produto e está que documentei aqui no blog é a que você deve usar.

      Se você não conseguir usar nosso suporte pode lhe ajudar – http://support.embarcadero.com

      Responder
  5. Rick
    Rick says:

    Funcionou a versão 32 bits do server 5.1.56 do MySql e apaguei todas as outras dlls, nem precisei colocar no diretório c:\widnows\system 32 ou qualquer outro mas durante a instalação do MySql pedi para adicionar o path e instalar as bibiotecas DEV.

    Muito Obrigado.

    Responder
  6. Lucas
    Lucas says:

    Lucas says:
    10 de julho de 2011 às 1:31

    Andreano, ainda falando de DBX, no recurso de metadata, como é possível adicionar uma coluna a uma tabela já existente?

    Já que Provider.CreateTable(TDBXTable) cria a tabela…

    Obrigado!

    Att.,

    >>> Não encontro esse tópico em lugar algum…

    Responder
  7. DBXMYS.DLL
    DBXMYS.DLL says:

    Utilizo o Delphi 2010 professional, Data Module com um TsqlQuery, TDatasource, TClientDataSet e TDatasetProvider, para acesso ao mysql 5.1. Até hoje vinha funcionando normal, mas agora aparece quando executa a linha “DM.QNOTAFISCAL.CLOSE ou fecho a conexão” a seguinte mensagem:

    ACCESS VIOLATION AT ADDRESS 00C095B IN MODULE ‘DBXMYS.DLL’. WRITE OF ADDRESS 00000000.

    Já pesquisei na internet e nada funcionou, até coloquei as DLL dbxmys.dll e libmysql.dll na pasta do executavel e em system32, mas não funcionou.

    obs: Em uma simples consulta, funciona na primeira vez, quando vou solicitar novamente a mesma consulta sem sair do programa, ocorre o erro na linha acima informada.

    Obrigado.
    Helio.

    Responder

Deixe uma resposta

Want to join the discussion?
Feel free to contribute!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *


Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.