我有一个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);
但是,似乎这还不足以实际刷新数据库连接。如何正确创建此刷新流程?
答案 0 :(得分:1)
更改设置后,您需要关闭()并打开()连接。这也写在文档中。