怎么才能让它立即就将数据真正的写到数据库中
12 个解决方案
#1
例如
QSqlQuery query;
query.prepare(“insert into student (id, name) ”
“values (:id, :name)”);
query.bindValue(0, 5);
query.exec();
应该是在执行query.exec()将数据写入的
#2
但是在执行完此语句后,机器没电,居然没有写入成功?
#3
确定没有进行事物处理。
#4
数据量太大也需要时间处理的
#5
只是一个简单的写操作,而且数据量不大
#6
QT中有类似Linux中sync功能的函数,用于进行缓存清楚吗
#7
这样不行吗?应该可以吧
#8
QSqlTableModel与数据库之间的更新策略
model->setEditStrategy(策略);
策略:
(1)QSqlTableModel::OnFieldChang
对model的任何更改将立即更新到数据库
(2)QSqlTableModel::OnRowChange(默认策略)
对model某行的更改,将会在用户选择另外一行时更新到数据库
(3)QSqlTableModel::OnManualSubmit
对model的更改不会立即更新到数据库,直到用户调用submitAll() 或revertAll()函数。
submitAll()表示提交所有待定的操作。
revertAll()表示恢复/撤销所有待定的操作。
你说的是不是对每行数据操作之后、是否更新了数据库?
model->setEditStrategy(策略);
策略:
(1)QSqlTableModel::OnFieldChang
对model的任何更改将立即更新到数据库
(2)QSqlTableModel::OnRowChange(默认策略)
对model某行的更改,将会在用户选择另外一行时更新到数据库
(3)QSqlTableModel::OnManualSubmit
对model的更改不会立即更新到数据库,直到用户调用submitAll() 或revertAll()函数。
submitAll()表示提交所有待定的操作。
revertAll()表示恢复/撤销所有待定的操作。
你说的是不是对每行数据操作之后、是否更新了数据库?
#9
如果是非文件型的数据库,会产生这个问题,但这不是Qt的原因,是数据库引擎的排队原因。
Oracle, SQLServer2005 以上都有这个功能。
Oracle, SQLServer2005 以上都有这个功能。
#10
八楼的说的说的对,我问的就是这个
#11
query.exec()这个之后,会立即更新数据库吗?根据八楼说的可能更新也可能不更新
#12
QSqlTabelModel模型可以将所有修改先保存到model中,只有当执行事务操作的commit()后,才会真正写入数据库。
#1
例如
QSqlQuery query;
query.prepare(“insert into student (id, name) ”
“values (:id, :name)”);
query.bindValue(0, 5);
query.exec();
应该是在执行query.exec()将数据写入的
#2
但是在执行完此语句后,机器没电,居然没有写入成功?
#3
确定没有进行事物处理。
#4
数据量太大也需要时间处理的
#5
只是一个简单的写操作,而且数据量不大
#6
QT中有类似Linux中sync功能的函数,用于进行缓存清楚吗
#7
这样不行吗?应该可以吧
#8
QSqlTableModel与数据库之间的更新策略
model->setEditStrategy(策略);
策略:
(1)QSqlTableModel::OnFieldChang
对model的任何更改将立即更新到数据库
(2)QSqlTableModel::OnRowChange(默认策略)
对model某行的更改,将会在用户选择另外一行时更新到数据库
(3)QSqlTableModel::OnManualSubmit
对model的更改不会立即更新到数据库,直到用户调用submitAll() 或revertAll()函数。
submitAll()表示提交所有待定的操作。
revertAll()表示恢复/撤销所有待定的操作。
你说的是不是对每行数据操作之后、是否更新了数据库?
model->setEditStrategy(策略);
策略:
(1)QSqlTableModel::OnFieldChang
对model的任何更改将立即更新到数据库
(2)QSqlTableModel::OnRowChange(默认策略)
对model某行的更改,将会在用户选择另外一行时更新到数据库
(3)QSqlTableModel::OnManualSubmit
对model的更改不会立即更新到数据库,直到用户调用submitAll() 或revertAll()函数。
submitAll()表示提交所有待定的操作。
revertAll()表示恢复/撤销所有待定的操作。
你说的是不是对每行数据操作之后、是否更新了数据库?
#9
如果是非文件型的数据库,会产生这个问题,但这不是Qt的原因,是数据库引擎的排队原因。
Oracle, SQLServer2005 以上都有这个功能。
Oracle, SQLServer2005 以上都有这个功能。
#10
八楼的说的说的对,我问的就是这个
#11
query.exec()这个之后,会立即更新数据库吗?根据八楼说的可能更新也可能不更新
#12
QSqlTabelModel模型可以将所有修改先保存到model中,只有当执行事务操作的commit()后,才会真正写入数据库。