QT生成的exe无法连接到PostrgreSQL数据库

时间:2015-07-01 19:37:33

标签: c++ qt

我在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,但由于某种原因,该应用程序无法加载相应的驱动程序,尽管它说它可用。

1 个答案:

答案 0 :(得分:1)

我得到了它的工作。万一有人遇到同样的问题。我通过将PostgreSQL安装目录中bin文件夹的所有内容添加到QT项目的release文件夹中来解决它。