如何连接服务器应用程序和客户端应用程序,Qt

时间:2020-12-28 10:39:13

标签: database qt server client

我有一个服务器应用程序连接到这样的数据库:

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.";

}

1 个答案:

答案 0 :(得分:0)

我的根本问题是 Pgadmin 和 Qt 之间的输入数据不同。

db = QSqlDatabase::addDatabase("QPSQL");
    db.setHostName("localhost");
    db.setDatabaseName("main");
    db.setUserName("postgres");
    db.setPort(5432);
    db.setPassword("password");

所有这些都应该是一样的。