当然,也可以使用QSqlTableModel::data() and QSqlTableModel::setData()来访问数据库。如下例所示: setData():
插入一条记录:
删除五条连续的记录:
当记录改变之后,必须调用QSqlTableModel::submitAll()提交保存,否则数据是不写入的。何时又是否调用QSqlTableModel::submitAll()取决于表格的edit strategy(编辑策略),默认的编辑策略是 QSqlTableModel::OnRowChange(随行变化),其他的策略如下所示:
The SQL Relational Table Model QSqlRelationalTableModel 扩展了 QSqlTableModel 以提供对外键的支持。外键是一张表中的一个字段和另一张表中的主键字段之间的一对一的映射。
表1是使用QSqlTableModel展现在QTableView中的一张表格,外键city和country还没有解析为可读的数值。表2采用了QSqlRelationalTableModel来展示,其外键已经转换为可读的字符串数值。下列代码片段展示了QSqlRelationalTableModel的建立过程:
PS:
这篇文章翻译于Qt的SQL模块,中间有删减,另外加了一些个人的理解。
由于英文功底有限,翻译中可能存在多个不当之处,望不吝指出,共同进步。