Delphi XE2 dbExpress MySQL соединение - PullRequest
2 голосов
/ 28 сентября 2011

Независимо от того, что я пробовал, я не мог заставить XE2 подключаться к MySQL с помощью dbExpress. Проблема на самом деле многолика. Во-первых, целевой MySQL является 32- или 64-разрядным, что влияет на libmysql.dll, поставляемый с установкой MySQL, что вводит в заблуждение, поскольку XE2 IDE является 32-разрядным приложением и принимает только 32-разрядные библиотеки DLL. Поэтому мне нужно было использовать 32-битную установку libmysql.dll, поместить ее в Windows \ System32 (или в саму папку проекта), а затем установить платформу целевой компиляции на 32-битную в моем проекте (чтобы она не была попробуйте использовать 64-битный dbxmys.dll, на всякий случай), все же безуспешно. Все комбинации, которые я пробовал, приводили к этой ошибке: «Ошибка DBX: не удалось правильно инициализировать драйвер. Возможно, отсутствует клиентская библиотека .......»

Кто-нибудь может подключить XE2 dbExpress к серверу MySQL? Мне нужна ваша помощь. Заранее спасибо.

Windows 7 64-битная (платформа dev с XE2), MySQL 5.5.16 32-битная (установлена ​​на удаленной 32-битной XP) / MySQL 5.1.54 64-битная (установлена ​​на удаленной XP x64) (пробовала с обоими, используя их libmysql.dlls)

Ответы [ 6 ]

2 голосов
/ 15 декабря 2011

ответ на ваш вопрос прост, установите mysql и скопируйте libmysql.dll из корзины mysql, как показано, например, (C: \ Program Files \ MySQL \ MySQL Server 5.1 \ bin), а затем перейдите в каталог xe2 и откройте корзину, например, (C: \ Program Files \ Embarcadero \ RAD Studio \ 9.0 \ bin) и вставьте ее туда, где уже запущен libmysql.dll.

1 голос
/ 26 июня 2012

Немного поздно, но я надеюсь, что это поможет:

  1. Установите последние обновления для Delphi XE2
  2. Установить собственный клиент SQL Server 2008
  3. Удалите все старое, например SQL Server Express 2005 (если установлено)

Я не смог точно определить причину, почему это работает. Может быть использование sqlncli.dll вместо oledb.dll.

1 голос
/ 25 мая 2012

Ответ на этот вопрос можно найти по адресу WiltonSoftware.com .

Что я сделал:

  1. Я скачал zip-файл, содержащий libmysql.dll версия 5.1.59
  2. Я создал папку C: \ Program Files (x86) \ MySQL \ MySQL Connector 5.1.59 \ lib
  3. Я скопировал DLL в только что созданную папку
  4. Я добавил эту папку в переменную среды Windows Path

Она отлично работала для меня!

1 голос
/ 28 сентября 2011

Поскольку у вас есть x64 Windows, то вы должны поместить x32 libmysql.dll не в Windows\System32, а в Windows\SysWOW64. Или вы можете положить x32 libmysql.dll в папку XE2\Bin.

Если вы создадите приложение для x64, то x64 libmysql.dll вы должны поместить в Windows\System32 или в свою папку EXE.

0 голосов
/ 02 октября 2011

Единственная версия, работающая с XE2, была 5.1.54, у меня была та же проблема, и она решалась этим

0 голосов
/ 29 сентября 2011

Хммм, по-видимому, вопрос, который я задал, был ошибкой в ​​XE2 и предположительно исправлен с обновлением 1 http://docwiki.embarcadero.com/RADStudio/en/Release_Notes_for_XE2#Please_Install_XE2_Update_1

Я попробую и посмотрю, действительно ли это решило проблему.

...