繁体   English   中英

未加载 QPSQL 驱动程序 Qt

[英]QPSQL driver not loaded Qt

我想添加数据库时遇到了一些麻烦。

    _dataBase = QSqlDatabase::addDatabase("QPSQL");

调用此方法后出现错误:

QSqlDatabase: QPSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

我将PATH变量路径包含到:

PostgreSQL\9.3\bin
PostgreSQL\9.3\lib
PostgreSQL\9.3\include

我也将文件夹sqldrivers复制到Debug文件夹。 还尝试将此文件夹中的 dll 复制到Debug 也不行。

如果要获取有关为什么尚未加载QPSQL驱动程序的完整信息,请添加系统变量QT_DEBUG_PLUGINS=1

可能您会发现Qt找不到它。 将输出复制并粘贴到此处以了解确切发生的情况。

我来这里进行谷歌搜索是因为我在Windows中也遇到了同样的问题。

就我而言,要解决此问题,我必须为Windows 32位安装PostgreSQL,因为我的Qt目标是MinGW 32位。

另外,我必须将PATH添加到PostgreSQL bin和lib目录中,以便Qt可以找到正确的.dlls

@SET PATH=C:\Program Files (x86)\PostgreSQL\9.6\bin\;C:\Program Files (x86)\PostgreSQL\9.6\lib\;%PATH%

可以在启动Qt Creator之前或通过“ Projects窗格中的“ Build Environment使用Qt Creator本身来设置PATH

qsqlpsql.dll上使用depends.exe,发现此dll需要来自PostgreSQL\\9.3\\lib文件夹中的libpq.dll libpq.dll添加到Debug文件夹,它可以正常工作:)

如果您已经使用conda或installer pip install PyQt5事件,请尝试pip install PyQt5事件。 它帮助了我。

我在部署 Qt 应用程序时遇到了同样的问题(windeployqt 没有帮助)。 I had to copy more.dlls (libcrypto-1_1-x64.dll, libiconv-2.dll, libintl-8.dll, libpq.dll, libssl-1_1-x64.dll, libwinpthread-1.dll) from postgreSQL bin path (c:\ Program Files\PostgreSQL\12\bin) 在 .exe 文件旁边(根据 dependency walker)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM