Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt中的Sqlite事务_C++_Qt_Sqlite - Fatal编程技术网

C++ Qt中的Sqlite事务

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();

我正在qt中执行sql事务

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”函数之前使查询处于非活动状态。