我有一个Qt应用程序,该应用程序(基本上)使用QMYSQL创建了QSqlDatabase数据库连接,创建了gridPopulator实例,以(显然)来自数据库的数据填充QTableView。看起来很简单,但是我有一个“首选项”对话框,它可以更改数据库连接设置。因此,如果在首选项对话框中接受设置,则我的应用程序必须使用gridPopulator::refresh()重新填充QTableView。我尽力在下图中解释该过程。

我当前拥有的程序能够像这样更改数据库对象的设置:

preferences p; p.read();
QSqlDatabase databaseConnection = QSqlDatabase::database("SCHEDULE_DATABASE");

databaseConnection.setHostName(p.database->server_addr);
databaseConnection.setUserName(p.database->username);
databaseConnection.setPassword(p.database->password);
databaseConnection.setDatabaseName(p.database->database_name);
databaseConnection.setPort(p.database->serverPort);

但是,这似乎不足以实际刷新数据库连接。如何正确创建此刷新过程?

最佳答案

更改设置后,您需要关闭()和打开()连接。这也写在文档中。

10-08 08:21