2013-12-11 37 views
1

我在表改变单元格的值:如何通过QSqlTableModel保存更改数据库?

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 
db.setDatabaseName("sqlite.db"); 
db.open(); 

QSqlTableModel *model = new QSqlTableModel(0, db); 
model->setTable("Expenses"); 
model->select(); 
model->setData(model->index(0,2), 100); 

如何现在保存在数据库中(sqlite.db)的变化?

回答

3

由于Qt docs说,保存更改取决于您的模型的编辑策略设置。根据编辑策略,该值可能会立即应用于数据库或缓存到模型中。 你应该参考你的模型的QSqlTableModel::setEditStrategy()函数,并设置一个符合你的需求的函数。例如,如果将编辑策略设置为QSqlTableModel::OnFieldChange,则所有更改都将在setData()函数调用后立即生效。

否则,您只需致电QSqlTableModel::submitAll()即可将所有待处理的更改提交到数据库。

相关问题