关于qt中QTableView使用mysql的一个小疑问
蜗牛世家 2019-01-09 09:32:07 QSqlTableModel *_model=dynamic_cast<QSqlTableModel *>(ui->tableView->model());
_model->database().transaction();
_model->submitAll();
if (_model->submitAll()) // 提交所有被修改的数据到数据库中
{
_model->database().commit(); //提交成功,事务将真正修改数据库数据
}
else{
_model->database().rollback(); //提交失败,事务回滚
QMessageBox::warning(this, tr("tableModel"),tr("数据库错误: %1").arg(_model->lastError().text()));
}
_model->revertAll(); //撤销修改*/
上面这一段代码,我搞不懂_model->submitAll()和_model_database().commit有什么区别,我在代码中只调用_model->submitAll(),把下面的东西都给删掉,然后我在tableview中修改数据也能改变mysql里的数据,为什么我还要调用_model->database().commit()这一行代码?还有既然我已经提交要修改的数据了,为什么最后还要调用_model->revertAll()撤销修改。我在网上搜索了很多mysql怎么同步tableview数据的demo,很多都是这样写的,不知道为什么?