C++ Qt中的Sqlite事务
我正在qt中执行sql事务C++ Qt中的Sqlite事务,c++,qt,sqlite,C++,Qt,Sqlite,我正在qt中执行sql事务 bool X::save() { if (!mDatabase.transaction()) { return false; } if (!saveHeader()) { mDatabase.rollback(); return false; } if (!saveBody()) { mDatabase.rollback();
bool X::save()
{
if (!mDatabase.transaction())
{
return false;
}
if (!saveHeader())
{
mDatabase.rollback();
return false;
}
if (!saveBody())
{
mDatabase.rollback();
return false;
}
mDatabase.commit();
return true;
}
我的提交返回失败返回“无法提交-没有事务处于活动状态无法提交事务”
我在函数中有选择和删除查询。但是我确实查询.clear()执行后
但我还是犯了这个错误。有人知道为什么…QSqlDatabase::transaction()返回true?是的。。。我将根据文档更新问题,“注意:对于某些数据库,如果存在使用数据库进行SELECT的活动查询,则提交将失败并返回false。请在执行提交之前使查询处于非活动状态。”()尝试一下。@Tarod:我在问题中提到过,我确实执行clear()对于我的SELECT查询。在调用“save”方法之前是否尝试过QSqlQuery::finish()?另一种尝试是删除QSqlQuery实例以获得相同的行为,以便在调用“save”函数之前使查询处于非活动状态。