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

  • 相关阅读:
    [译]《Sphinx权威指南》
    sphinx 配置文件全解析
    利用 crontab 來做 Linux 固定排程
    http协议中用于上传多个文件的 multipart 字段
    Python 代码覆盖率统计工具 coverage.py
    Disruptor 基础篇
    NPM:常用命令的生命周期脚本
    十大经典排序算法(动图演示)【转】
    TypeScript Jest 调试
    NPM: 日常开发环境配置
  • 原文地址:https://www.cnblogs.com/findumars/p/6352634.html
Copyright © 2011-2022 走看看