gpt4 book ai didi

c++ - 更改数据库连接后如何更新 QSqlTableModel

转载 作者:搜寻专家 更新时间:2023-10-30 23:19:23 24 4
gpt4 key购买 nike

我有派生自 QSqlRelationalTableModel 的类。我使用 SQLite 数据库。我需要更改数据库文件。我关闭旧的数据库文件,调用 SetDatabaseName("path to new file") 并打开新的数据库文件。现在我只是为模型调用 select(),但它返回 false。如果我调用 setTable("table") 并且仅在该 select() 之后,一切正常......但是表名是一样的...

我没有找到任何方法可以通知模型数据库连接已更改....您知道通知模型的更好方法吗?


好的。我又回到了这个话题。

更改数据库后,我必须使用相同的表名调用 setTable() 以重新初始化表模型。而且我没有找到更好的方法来重新初始化 TableView ,我调用

pTableView->setModel(NULL);
pTableView->setModel(model);

这会产生很多不必要的代码调用,但在其他情况下 TableView 并不知道表模型的变化(例如列数)。

我没有找到更好的方法来重新初始化 QSqlTableModelQTableView。一些想法?

最佳答案

// create your model(parent=0, QSqlDatabase::database());
// set your table model->setTable("tablename");
tableview->setModel(this->model)
bool ok = model->select() // model should populate itself and refresh tableView as well

关于c++ - 更改数据库连接后如何更新 QSqlTableModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8508363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com