• 4197阅读
  • 1回复

[提问]Qt事务回滚 [复制链接]

上一主题 下一主题
离线清晨
 

只看楼主 倒序阅读 楼主  发表于: 2013-10-26
按网上的方法:

if(QSqlDatabase::database().driver()->hasFeature(QSqlDriver::Transaction s))
    { //先判断该数据是否支持事务操作
        if(QSqlDatabase::database().transaction()) //启动事务操作
        {
            //下面执行各种数据库操作
            QSqlQuery query;
            query.exec("insert into comdig values ('01','1')");
            query.exec("insert into comdig values ('02','2')");
            query.exec("insert into comdig values ('03')";
            query.exec("insert into comdig values ('04','4')");
            if(!QSqlDatabase::database().commit())
            {
                qDebug() << QSqlDatabase::database().lastError(); //提交
                if(!QSqlDatabase::database().rollback())
                    qDebug() << QSqlDatabase::database().lastError(); //回滚
             }
        }
    }


第三语句是失败的  但第一、二、四语句还是写进了数据库   最后的两个if()判断根本就没进去
我想要的是执行Sql语句时如果出现错误 所有的执行内容全部回滚  请问有什么方法呃
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线清晨

只看该作者 1楼 发表于: 2013-10-26
解决了。
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个