我正在用开发一个Windows服务,我无法连接到我的数据库(Postgresql)。
但是我有一个客户端应用程序,在其中我使用完全相同的数据库连接,并且它可以工作。
//driver
mDB = QSqlDatabase::addDatabase("QPSQL");
//connection
void Monitoring::DbConnection(QSqlDatabase mDB)
{
mDB.setHostName("localhost");
mDB.setDatabaseName("testdb");
mDB.setPort(5432);
mDB.setPassword("test");
mDB.setUserName("12345");
if (!mDB.open()) {
qDebug() << "Database Error ! " << mDB.lastError();
mMessagebox.critical(0, "Error", "An Error occurred! "
+ mDB.lastError().text());
qApp->exit();
}
}lastError说:
无法将主机名"localhost“转换为地址:未知服务器错误
我遗漏了什么?
提前感谢
发布于 2019-05-03 15:23:58
当您传递参数时,您正在为对象创建一个副本,并且可能=运算符并不是所有数据的拷贝。
使用参数中的&尝试下面的代码:
//connection
void Monitoring::DbConnection(QSqlDatabase& mDB)
{
mDB.setHostName("127.0.0.1");
mDB.setDatabaseName("testdb");
mDB.setPort(5432);
mDB.setPassword("test");
mDB.setUserName("12345");
if (!mDB.open()) {
qDebug() << "Database Error ! " << mDB.lastError();
mMessagebox.critical(0, "Error", "An Error occurred! "
+ mDB.lastError().text());
qApp->exit();
}
}https://stackoverflow.com/questions/55972393
复制相似问题