QSqlRelationalTableModel 更新问题
QSqlRelationalTableModel 更新问题 在开发一个qt项目时,因为涉及操纵多张表结构,我使用QSqlRelationalTableModel作为我的模型(myModel),将其中一个设定为主表,为相应的列设定引用关系表,设定相应的委托。然后在视图中对其进行增删改查操作,发现对于一个已经存在的记录进行修改时,发现视图中的相应项数据能够更新,但是等到再一次更新整个视图时,被更新的项数据撤销。
打印myModel内容,发现数据确实更新了,进行提交submitAll()后再次更新视图数据就被撤销。这说明submitAll并没能将myModel中的更改提交到数据库中。查看myModel->lastError(),并没有任何错误。这说明更新语句并没有任何错误。重新查看帮助文档,发现使用QSqlRelationalTableModel需注意如下事项:
- The table must have a primary key declared.
- The table’s primary key may not contain a relation to another table.
table A 表格语法:
字段 | 说明 |
---|---|
punId | primary key |
caseId | primary key |
typeId | primary key |
修改后的table A:
字段 | 说明 |
---|---|
id | primary key |
punId | |
caseId | |
typeId |
推荐阅读
- 《跨界歌手》:亲情永远比爱情更有泪点
- 【译】20个更有效地使用谷歌搜索的技巧
- 从蓦然回首到花开在眼前,都是为了更好的明天。
- 六月更新的......
- 研学让生活更美好
- 如何更好的去学习
- 姚老师互动问答会|姚老师互动问答会 # 问题001(如何更有智慧的和身边人分享金刚智慧())
- 杀死一只知更鸟
- 日更小小记
- 这座媲美重庆的绝色山城,深藏国宝级景点,更有绝美高山花海!