我有一个服务器应用程序连接到这样的数据库:
Database::Database(QObject *parent) : QObject(parent)
{
db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("localhost");
db.setDatabaseName("main");
db.setUserName("postgres");
db.setPort(5432);
db.setPassword("zalfon19");
if(!db.open()){
auto problemDialog = new InfoDialog(InfoDialog::Warning, "Baza danych", "Aplikacja napotkała na problem z połączeniem z bazą danych", nullptr, true);
problemDialog->show();
qDebug()<<"There is a problem with database.";
return;
}
qDebug()<<"There is no problem with database.";
QSqlQuery query;
query.exec("truncate active_errors");
}
没有必要更改的客户端应用程序来解释我的情况:
Database::Database(QObject *parent) : QObject(parent)
{
db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName(settings.dbpath.get());
db.setDatabaseName("main");
db.setUserName("postgres");
db.setPort(5432);
db.setPassword("zalfon19");
if(!db.open()){
auto problemDialog = new InfoDialog(InfoDialog::Warning, "Baza danych", "Aplikacja napotkała na problem z połączeniem z bazą danych", nullptr, true);
problemDialog->show();
qDebug()<<"There is a problem with database.";
}
qDebug()<<"There is no problem with database.";
}
答案 0 :(得分:0)
我的根本问题是 Pgadmin 和 Qt 之间的输入数据不同。
db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("localhost");
db.setDatabaseName("main");
db.setUserName("postgres");
db.setPort(5432);
db.setPassword("password");
所有这些都应该是一样的。