qsqlpsql.dll 是 Qt SQL 模块在 Windows 平台下的 PostgreSQL 数据库驱动插件,对应驱动名为 QPSQL。它本身不是 PostgreSQL 服务端组件,也不是通用数据库客户端,而是 Qt 应用程序与 PostgreSQL 客户端库 libpq 之间的动态桥接层。应用程序通过 QSqlDatabase、QSqlQuery、QSqlTableModel 等类访问 PostgreSQL 时,Qt 会在插件目录中查找并加载 qsqlpsql.dll,再由该 DLL 完成底层协议适配。
| 场景 | 表现 |
|---|---|
| 程序启动或模块初始化 | QSqlDatabase::drivers() 中无 QPSQL,addDatabase 返回无效连接。 |
| 打开数据库 | open() 失败,常见错误为 Driver not loaded、QPSQL driver not loaded 或 driver not found。 |
| 业务查询 | QSqlQuery::exec 无法执行,QSqlTableModel、QSqlRelationalTableModel 无法加载数据。 |
| 事务与写入 | 增删改、事务提交回滚全部不可用,依赖数据库的功能中断。 |
| 部署环境 | 若 sqldrivers 目录缺失、DLL 位数不匹配、Qt 版本不匹配,或 libpq.dll 等依赖缺失,也会出现同类故障。 |
在 Windows 部署时,qsqlpsql.dll 通常应位于应用程序目录下的 sqldrivers 子目录,并与 Qt 的架构、编译器版本保持一致。若使用 PostgreSQL 客户端库,还需确保 libpq.dll 及其依赖(如 SSL、加密库)可用。排查时可先检查 QSqlDatabase::drivers() 输出,再确认插件路径、依赖项和版本兼容性。