使用FireDac驱动程序访问PostgreSQL 11、64位版本的Delphi 10.3(32位)社区版

时间:2019-10-29 08:55:29

标签: delphi

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

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

[FireDAC] [Phys] -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问题方面的任何帮助将不胜感激。

此致

Nols Smit

2 个答案:

答案 0 :(得分:4)

1)从官方网站Download PostgreSQL Binaries

下载x86-32二进制文件作为zip存档。

2)解压缩文件并将此文件从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数据库。

答案 1 :(得分:0)

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

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