delphi - Delphi 10.3(32 位)社区版访问 PostgreSQL 11,使用 FireDac 驱动程序的 64 位版
问题描述
我在 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) 甚至从 http://www.dlldownloader.com/libpq-下载了 libpq.dll 的 32 位版本dll/下载/dc193c20ee9b0ba03a6e5cb7d94eca6d/
我在 Delphi 10.3(32 位)社区版和 PostgreSQL(64 位)之间使用 Unidac 驱动程序没有问题,但我的意图是使用 TMS Remote DB 和 TMS XData,他们的示例使用 FireDac 到 Microsoft 数据库产品。
任何解决此 FireDac/Postgres 问题的帮助将不胜感激。
问候,
诺尔斯·斯密特
解决方案
1) 从官方网站下载 x86-32 二进制文件作为 zip 存档:下载 PostgreSQL 二进制文件
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 数据库。
推荐阅读
- javascript - 在javascript中解析本地文件中的特定内容?
- javascript - 通过 JS 向 CSS 类添加 url 链接
- excel - 重新打开时,用户窗体会保持清除值
- javascript - 出现 IF/Else 条件后未弹出警报或消息框
- tensorflow - tensorflow 可重新初始化的迭代器问题
- java - 在 Mac OS 中以编程方式处理 Command+H
- java - 排序列表中的数字对
- javascript - 由 jQuery 添加的什么都不发送
- php - 从 PHP 返回 True/False 到 Ajax
- python - 如何清除 EnvironmentError: [WinError 87] during "pip install qiskit"