如何更新QSqlTableModel后,数据库连接已更改更改
How to update QSqlTableModel after database connection has been changed changed
我有一个派生自QSqlRelationalTableModel
的类。我使用SQLite数据库。我需要改变数据库文件。我关闭旧的数据库文件,调用SetDatabaseName("新文件的路径")并打开新的数据库文件。现在我只是为模型调用select(),但它返回false。如果我调用setTable("table"),只有在select()之后,一切工作…但是表的名称是相同的…
我没有找到任何方法允许通知模型数据库连接已更改....你知道更好的告知模型的方法吗?
Ok。我再次回到这个话题。
更改db后,我必须使用相同的表名调用setTable()来重新构建表模型。我没有找到更好的方法来重建表视图,我调用
pTableView->setModel(NULL);
pTableView->setModel(model);
这会产生很多不必要的代码调用,但在其他情况下,表视图不知道表模型的变化(例如列数)。
我没有找到更好的方法来重新初始化QSqlTableModel
和QTableView
。一些想法?
// 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
那是我的错。在源代码的帮助下,我发现在哪些情况下select()返回false。并且我的新数据库表中的一个字段名缺少一个字母:(因此,QSqlQuery与select返回错误。setTable调用更新表的字段名,因此select返回true。
相关文章:
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 如何在多个线程中创建 QSql数据库连接时防止名称冲突
- 数据库连接并将数据从C ++程序保存到MySQL
- 在 C++ 中获取数据库连接
- Firebase C++ Windows 上的实时数据库连接丢失
- 我不能使用 mysql 数据库连接同时使用插入和选择.C++
- C++ Qt SQL lite 数据库连接问题
- C++ 程序中的数据库连接检查
- 打开与 Qt/C++ 的数据库连接
- 如何修复数据库连接的C 程序运行时间错误(0xc0000005)
- 使用libpq组织PostgreSQL数据库连接参数
- Qt 中的数据库连接池
- Qt-同时处理多个数据库连接
- 使用QT C 为Sevaral表单创建常见的数据库连接
- 将Raspberry Pi 2与外部远程数据库连接
- 是否允许在同一 Sqlite 数据库连接中启动多个事务
- IIS-部署ASP.NET网站和数据库连接
- 没有数据库连接的字符串转义
- Singletone中的数据库连接
- 正在将数据库连接到本地网络中的程序