十一、Qt数据库操作之事务

案例如下

void transactionDemo()
{
    QSqlDatabase conn = QSqlDatabase::addDatabase("QMYSQL");
    conn.setHostName("localhost");
    conn.setPort(3306);
    conn.setDatabaseName("qt_db");
    conn.setUserName("root");
    conn.setPassword("root");

    if (!conn.open())
    {
        QMessageBox::critical(this, "错误", "连接数据库失败,错误信息如下\n" + conn.lastError().text(),
                              QMessageBox::Ok, QMessageBox::NoButton);
        return;
    }
    //如数据库驱动支持事务
    if (conn.driver()->hasFeature(QSqlDriver::Transactions))
    {
        //开启事务
        conn.transaction();
        //更新数据库操作
        bool result = updateDb();
        if (result)
            //提交事务
            conn.commit();
        else
            //回滚事务
            conn.rollback();
    }
}

若数据库驱动不支持事务,则可使用下面方法开启事务:

QSqlQuery query 
query.exec(“START TRANSACTION”) 
query.exec(“COMMIT”); 
query.exec(“ROLLBACK”); 

备注:暂时查询到的是Qt5.12版本,支持 MYSQL 事务处理

  • 0
    点赞
  • 3
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
评论

打赏作者

咸鱼最牛逼

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值