【问题标题】:Delphi 10.3 (32 bit) Community edition accessing PostgreSQL 11, 64 bit edition using FireDac driversDelphi 10.3(32 位)社区版访问 PostgreSQL 11,使用 FireDac 驱动程序的 64 位版
【发布时间】:2019-10-29 08:55:29
【问题描述】:

我在 Delphi 10.3(32 位)社区版中使用 FireDac 访问 PostgreSQL 11 64 位版时遇到问题。我在包含可执行文件的文件夹中确实有 libpq.dll。

但是,我收到以下错误消息:

[FireDAC][物理]-314。无法加载供应商库 [libpg.dll]。 指定的模块无法找到 提示:检查它是否在 PATH 或应用程序 EXE 目录中,并且 具有 x86 位。

我阅读了 Embarcardero 的笔记: http://docwiki.embarcadero.com/RADStudio/Rio/en/Connect_to_PostgreSQL_(FireDAC) 甚至从下载了 32 位版本的 libpq.dll http://www.dlldownloader.com/libpq-dll/download/dc193c20ee9b0ba03a6e5cb7d94eca6d/

我在 Delphi 10.3(32 位)社区版和 PostgreSQL(64 位)之间使用 Unidac 驱动程序没有问题,但我的意图是使用 TMS Remote DB 和 TMS XData,他们的示例使用 FireDac 到 Microsoft 数据库产品。

任何帮助解决这个 FireDac/Postgres 问题将不胜感激。

问候,

诺尔斯·斯密特

【问题讨论】:

    标签: delphi


    【解决方案1】:

    1) 从官方网站下载 x86-32 二进制文件为 zip 存档:Download PostgreSQL Binaries

    2) 解压 zip 并将此文件从 pgsql/bin 复制到您的应用程序目录:

    libcrypto-1_1.dll
    libiconv-2.dll
    libintl-8.dll
    libpq.dll
    libssl-1_1.dll
    psql.exe <-- this file is needed for the test only (see below)
    

    3) 下载并安装适用于 x86 的 Visual Studio 2013 运行时包:Visual C++ Redistributable Packages for Visual Studio 2013

    4) 打开 Windows 命令提示符,导航到复制库的文件夹并运行以下命令:psql --version。如果它打印版本,那么一切正常,现在,您可以运行您的应用程序并连接到 PostgreSQL 数据库。

    【讨论】:

    • 谢谢,它解决了我的问题。我还将 bin 文件夹提取到名为“C:\Program Files (x86)\postgresql-10.10-2-windows-binaries\bin”的文件夹中,并将环境变量的路径也更新为指向它。通过这样做,设计时数据库链接也可以正常工作。
    【解决方案2】:

    我将 Firedac 库用于 MySQL 而不是 PostgreSQL,但是您可能需要在 FDPhysMySQLDriverLink 中设置供应商库。

    FDPhysMySQLDriverLink1.VendorLib := "path to  library /libpq.dll";
    

    【讨论】:

    • 你能把它放在压缩文件里让它便携吗?有用吗!?
    • @hamza Benzaoui 抱歉,我不知道。
    猜你喜欢
    • 2020-11-11
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多