2013-12-11 76 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()即可將所有待處理的更改提交到數據庫。

相關問題