zoukankan      html  css  js  c++  java
  • qt sql事务操作

    事务是数据库的一个重要功能,所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。在Qt中用transaction()开始一个事务操作,用commit()函数或rollback()函数进行结束。commit()表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到数据库,事务正常结束。rollback()表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始时的状态。

    如下面的例子:

    void Widget::on_pushButton_clicked()
    {
        if(QSqlDatabase::database().driver()->hasFeature(QSqlDriver::Transactions))
        { //先判断该数据库是否支持事务操作
            if(QSqlDatabase::database().transaction()) //启动事务操作
            {
                //下面执行各种数据库操作

                QSqlQuery query;
                query.exec("insert into student values (14, 'hello')");
                query.exec("delete from student where id = 1");
                if(!QSqlDatabase::database().commit())
                {
                    qDebug() << QSqlDatabase::database().lastError(); //提交
                    if(!QSqlDatabase::database().rollback())
                        qDebug() << QSqlDatabase::database().lastError(); //回滚
                 }
            }
        }
    }

    http://blog.sina.com.cn/s/blog_67173244010103ah.html

  • 相关阅读:
    Php7安装pdo_pgsql,pgsql扩展
    Laravel 实时监听打印 SQL
    windows 下安装docker依赖boot2docker镜像默认用户和密码
    win7下安装virtual box后启动报错
    phpstorm 不能自动打开上次的历史文件
    BZOJ1001 [BeiJing2006]狼抓兔子 平面图转对偶图,最小割转最短路
    BZOJ1098 [POI2007]办公楼biu
    POJ1410 Intersection
    HDU3336 Count the string
    HDU2594 Simpsons’ Hidden Talents [KMP]
  • 原文地址:https://www.cnblogs.com/findumars/p/6352634.html
Copyright © 2011-2022 走看看