我在QT 5.4中开发了一个连接到Postrgre DB的应用程序。在QT Creator中以发布模式运行应用程序时,连接正常。但是,当我添加.exe的依赖项并打开它时,我总是遇到连接错误。我根据依赖性walker将QT5Sql.dll添加到release目录以及所有其他所需的依赖项。
谁能告诉我我做错了什么?
ui->setupUi(this);
finishedGame = false;
ui->detener->setVisible(false);
ui->labelEnCurso->setVisible(false);
db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("localhost");
db.setDatabaseName("MYDB");
db.setUserName("USER");
db.setPassword("PASS");
bool ok = db.open();
if(!ok){
QMessageBox msgBox;
msgBox.setText("Connection ERROR");
msgBox.exec();
}
更新
我用DebugView检查了.exe,这是我得到的错误:
[10876] QSqlDatabase: QPSQL driver not loaded
[10876] QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
我的发布文件夹中有libpq.dll和qsqlpsql.dll,但由于某种原因,该应用程序无法加载相应的驱动程序,尽管它说它可用。
答案 0 :(得分:1)
我得到了它的工作。万一有人遇到同样的问题。我通过将PostgreSQL安装目录中bin文件夹的所有内容添加到QT项目的release文件夹中来解决它。