2011-09-28 157 views
2

無論我嘗試過什麼,我都無法讓XE2通過dbExpress連接到MySQL。這個問題其實有很多面孔。首先,目標MySQL是32位或64位,這會影響MySQL安裝隨附的libmysql.dll,這似乎是誤導性的,因爲XE2 IDE是一個32位應用程序,它只接受32位DLL。所以我需要使用32位安裝libmysql.dll,把它放在Windows \ System32下(或者到項目文件夾本身),然後在我的項目中將目標編譯平臺設置爲32位(這樣它就不會嘗試使用64位dbxmys.dll,以防萬一),仍然沒有運氣。我試過的所有組合導致出現此錯誤:「DBX錯誤:驅動程序無法正確初始化。客戶端庫可能會丟失.......」Delphi XE2 dbExpress MySQL連接

任何能夠使XE2 dbExpress連接到MySQL服務器?我需要你的幫助。提前致謝。 (安裝在遠程XP 32位上)/ MySQL 5.1.54 64位(安裝在遠程XP x64上)(Windows XP 64位(具有XE2的開發平臺),MySQL 5.5.16 32位(安裝在遠程XP 32位上))兩者都試過,通過使用它們的libmysql.dlls)

回答

1

由於看起來你有x64的Windows,那麼你應該把x32 libmysql.dll不是放入Windows\System32,而是放入Windows\SysWOW64。或者你可以把x32 libmysql.dll放入XE2\Bin文件夾中。

如果您要構建x64應用程序,則應該將x64 libmysql.dll放入Windows\System32或放入您的EXE文件夾中。

+0

我讀過一篇關於Windows \ System32和Windows \ SysWOW64的文章,但我已經嘗試了兩種方法。同樣的錯誤。我甚至將dbxmys.dll和libmysql.dll都放到項目的exe文件夾中(這應該是第一個查找DLL的地方)。看起來我還有其他東西在這裏。我注意到在數據資源管理器 - >修改連接 - >高級窗口中,通常無法在對象檢查器中看到名爲VendorLibWin64的TSQLConnection參數(以及可通過對象檢查器訪問的VendorLib),並嘗試將其手動設置再次無濟於事 –

+0

這很難說,你做錯了什麼。你能總結一下 - 你的窗口,應用程序,libmysql.dll的位數。你在哪裏和你在做什麼。這將有助於查看錯誤或確認設置是否正確,但dbExpress失敗。 – robmil

+1

讓我直截了當地說:當你在64位運行時,將32位dll放入system32,在32位模式下運行時,將32位dll放到sysWOW64中。這對我來說毫無意義。反過來說聽起來更合理。 – Johan

0

唯一版本的作品與XE2是54年5月1日我有同樣的問題,並通過該

2

回答你的問題很簡單,安裝你的mysql,並從你的MySQL複製斌作爲的libmysql.dll所示 正在解決例如(C:\ Program Files \ MySQL \ MySQL Server 5.1 \ bin),然後進入xe2目錄並打開bin,例如(C:\ Program Files \ Embarcadero \ RAD Studio \ 9.0 \ bin)並粘貼到那裏在它運行已經libmysql.dll。

1

此問題的答案見WiltonSoftware.com

我所做的是:

  1. 我下載包含一個zip文件,59年5月1日
  2. 我創建文件夾C libmysql.dll的版本:\程序文件(x86)\ MySQL的\ MySQL連接5.1 0.59 \ lib中
  3. 我複製的DLL到剛創建的文件夾
  4. 我加入該文件夾在Windows Path環境變量

我對我工作很好!

+0

+1或者你可以創建新的文件夾到任何系統文件夾,已經與Windows路徑設置;)但通常這不是壞主意。 – Wh1T3h4Ck5

1

有點晚了,但我希望它能幫助:

  1. 安裝最新的更新德爾福XE2
  2. 安裝SQL Server 2008本機客戶端
  3. 卸載一切舊如SQL Server Express 2005的(如果安裝)

我無法確定這個原因的確切原因。可能是sqlncli.dll而不是oledb.dll的用法。