Delphi 10.4 FireDAC连接PostgreSQL时x64 libpq.dll架构不兼容求助
Delphi 10.4 FireDAC连接PostgreSQL架构不匹配问题及版本支持说明
问题分析
你开发的是64位FireMonkey应用,已配置FDConnection为PG驱动并指定PostgreSQL 12的x64版libpq.dll,但在Object Inspector中点击Connected测试连接时出现架构不匹配错误。核心原因是:Delphi 10.4的IDE是32位(x86)程序,Object Inspector的连接测试在IDE进程内执行,因此会强制要求加载x86架构的libpq.dll,和项目的64位目标架构无关。
解决办法
- 为IDE配置x86版
libpq.dll:将PostgreSQL 12的x86版本libpq.dll放到Delphi IDE的bin目录(例如C:\Program Files (x86)\Embarcadero\Studio\21.0\bin),或者把该x86库所在路径添加到系统环境变量PATH中,IDE就能加载正确的库完成连接测试。 - 直接编译运行64位应用验证:跳过Object Inspector的测试,编译生成64位应用后运行,此时程序会加载你指定的x64版
libpq.dll,连接即可正常工作。
FireDAC对PostgreSQL的版本支持
Delphi 10.4自带的FireDAC官方支持的PostgreSQL最高版本为PostgreSQL 13。若需使用PostgreSQL 14及以上版本,需升级到Delphi 11或更高版本,后续版本的FireDAC已兼容更高版本的PostgreSQL。
错误信息原文
[FireDAC][Phys][PG]-314. Cannot load vendor library [C:\Roots\Bin\Postgres\x64 12\libpq.dll]. Library has unsupported architecture [x64]. Required [x86].
%1 is not a valid Win32 application
Hint: check it is in the PATH or application EXE directories, and has x86 bitness.
内容的提问来源于stack exchange,提问作者Dennis445
相关产品推荐
相关产品推荐

