PostgreSQL打开其他数据库失败

PostgreSQL opening other database failed

本文关键字:数据库 失败 其他 PostgreSQL      更新时间:2023-10-16

好吧,问题是,当我关闭以前的数据库并尝试连接到新的数据库时,我会得到:

Connection failed!
unterminated quoted string in connection info string
QPSQL:Unable to connect

在这里完整描述我在做什么:

首先,我使用任何可行的登录登录,然后连接到默认的" posgtres"数据库。然后,我执行查询select * from pg_database;以获取所有可用数据库的列表。之后,我关闭数据库。

void FdbToPg::connectToDatabase(){
    database.setHostName(ui.lineIP->text());
    database.setDatabaseName("postgres");
    database.setUserName(ui.lineLogin->text());
    database.setPassword(ui.linePassword->text());
    database.setPort(ui.linePort->text().toInt());
    QSqlQuery query;
    if(database.open()){
        QString dbOutput = "select * from pg_database;";
        query.exec(dbOutput);
        while(query.next()){
            ui.comboBox->addItem(query.value(0).toString(),QVariant::Char);
        }
        database.close();
    }else{
        QMessageBox::information(this, "Error", "Cant' connect ot the database");
    }
}

然后,当选择可游行的数据库时,我试图连接到它。在那里我得到了错误消息

void FdbToPg::on_selectButton_clicked(){    
    database.setDatabaseName(ui.comboBox->itemData(ui.comboBox->currentIndex()).toString());
    database.setHostName(ui.lineIP->text());
    database.setUserName(ui.lineLogin->text());
    database.setPassword(ui.linePassword->text());
    database.setPort(ui.linePort->text().toInt());
    bool ok = database.open();
    if(ok != true){
        QMessageBox::information(this, "Connection", "Connection failed! n" + database.lastError().text());
    } else {
        QMessageBox::information(this, "Connection", "Connection worked!");     
    }
}

这里有什么问题,我应该正确地关闭旧数据库并打开新数据库?

好吧,问题在这里

 database.setDatabaseName(ui.comboBox->itemData(ui.comboBox->currentIndex()).toString());

ui.comboBox->itemData(ui.comboBox->currentIndex()).toString()是返回一个空字符串。我将其更改为database.setDatabaseName(ui.comboBox->currentIndex());,现在还可以。

,但我仍然不明白怎么办 ui.comboBox->itemData(ui.comboBox->currentIndex()).toString()命令