【问题标题】:Delphi XE2 dbExpress MySQL connectionDelphi XE2 dbExpress MySQL 连接
【发布时间】:2011-11-26 12:27:44
【问题描述】:

无论我如何尝试,我都无法让 XE2 使用 dbExpress 连接到 MySQL。这个问题其实有很多面。首先,目标 MySQL 是 32 位或 64 位,这会影响 MySQL 安装附带的 libmysql.dll,这似乎具有误导性,因为 XE2 IDE 是 32 位应用程序,它只接受 32 位 DLL。所以我需要使用一个32位的安装libmysql.dll,放在Windows\System32下(或者项目本身的文件夹),然后在我的项目中将Target编译平台设置为32位(这样就不会尝试使用 64 位 dbxmys.dll,以防万一),仍然没有运气。我尝试的所有组合都出现此错误:“DBX 错误:驱动程序无法正确初始化。客户端库可能丢失......”

谁能让 XE2 dbExpress 连接到 MySQL 服务器?我需要你的帮助。提前致谢。

Windows 7 64 位(带 XE2 的开发平台)、MySQL 5.5.16 32 位(安装在远程 XP 32 位上)/MySQL 5.1.54 64 位(安装在远程 XP x64 上)(已尝试两者都使用它们的 libmysql.dll)

【问题讨论】:

    标签: mysql delphi 64-bit delphi-xe2 dbexpress


    【解决方案1】:

    问题的答案很简单,安装 mysql 并从 mysql bin 中复制 libmysql.dll,如图所示。(C:\Program Files\MySQL\MySQL Server 5.1\bin)然后转到 xe2 目录并也打开 bin,例如 (C:\Program Files\Embarcadero\RAD Studio\9.0\bin) 并将其粘贴到其中运行已经存在的 libmysql.dll。

    【讨论】:

      【解决方案2】:

      您似乎有 x64 Windows,那么您应该将 x32 libmysql.dll 放入 Windows\System32,而不是放入 Windows\SysWOW64。或者您可以将 x32 libmysql.dll 放入 XE2\Bin 文件夹中。

      如果您要构建 x64 应用程序,则应将 x64 libmysql.dll 放入 Windows\System32 或您的 EXE 文件夹中。

      【讨论】:

      • 我读过一篇关于 Windows\System32 和 Windows\SysWOW64 的相反的帖子,但无论如何我都尝试过这两种方式。还是一样的错误。我什至在项目的 exe 文件夹中尝试了 dbxmys.dll 和 libmysql.dll(这应该是查找 DLL 的第一个地方)。看起来我在这里还缺少其他东西。我注意到在 Data Explorer->Modify Connection->Advanced 窗口中有一个名为 VendorLibWin64 的 TSQLConnection 参数,您通常无法在 Object Inspector 中看到该参数(以及您可以通过 Object Inspector 访问的 VendorLib),并尝试手动设置它又无济于事
      • 这很难说,你做错了什么。你能总结一下 - 你的 Windows、应用程序、libmysql.dll 的位数。你在哪里和放什么。这将有助于查看错误或确认设置正确,但 dbExpress 失败。
      • 让我直截了当:你是说,在 64 位运行时将 64 位 dll 放在 system32 中,在 32 位模式下运行时,将 32 位 dll 放在 sysWOW64 中。这对我来说意义不大。反过来听起来更明智。
      • 不,我是说:64 位模式 - x64 dll -> system32, x32 dll -> SysWOW64。 32 位模式 - x32 dll -> system32.这就是故事......
      • 伙计们,我已经尝试了两种方法,但都没有成功。问题似乎出在其他地方。我想知道是否有人可以真正做到这一点。顺便说一句,我的配置是这样的,Windows 7 64 位,MySQL 5.5.16 32 位(安装在远程 XP 32 位上)/ MySQL 5.1.54 64 位(安装在远程 XP x64 上)(通过使用他们的 libmysql.dlls 尝试了两者)
      【解决方案3】:

      这个问题的答案可以在WiltonSoftware.com找到。

      我所做的是:

      1. 我下载了一个包含 libmysql.dll 版本 5.1.59 的 zip 文件
      2. 我创建了文件夹 C:\Program Files (x86)\MySQL\MySQL Connector 5.1.59\lib
      3. 我将 DLL 复制到刚刚创建的文件夹中
      4. 我在 Windows Path 环境变量中添加了该文件夹

      对我来说效果很好!

      【讨论】:

      • +1 或者你可以在任何系统文件夹中创建新文件夹,已经使用 Windows 路径设置;)但通常这不是坏主意。
      【解决方案4】:

      有点晚了,希望对你有帮助:

      1. 安装 Delphi XE2 的最新更新
      2. 安装 SQL Server 2008 本机客户端
      3. 卸载所有旧版本,如 SQL Server Express 2005(如果已安装)

      我无法查明这行得通的确切原因。可能是使用 sqlncli.dll 而不是 oledb.dll。

      【讨论】:

        【解决方案5】:

        嗯,显然我问的问题是 XE2 中的一个错误,据说更新 1 http://docwiki.embarcadero.com/RADStudio/en/Release_Notes_for_XE2#Please_Install_XE2_Update_1 已修复

        我会尝试看看它是否真的解决了这个问题。

        【讨论】:

          【解决方案6】:

          唯一适用于 XE2 的版本是 5.1.54,我遇到了同样的问题,并通过这个解决了

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2023-03-26
            • 2010-12-27
            • 2015-09-12
            • 2023-03-18
            • 1970-01-01
            • 1970-01-01
            • 2014-05-29
            相关资源
            最近更新 更多