关于 Qt操作mysql时QSqlDatabase无法commit提交事务且QSqlDriver不支持事务transaction 的解决方法

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/141637721

长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…)

Qt开发专栏:各种问题解决(点击传送门)


问题

  关于QSqlDatabase无法提交事务,QSqlDriver不支持事务操作的问题。


解决过程

  1.定位事务的执行单条语句是否正确,单独跑插入,确认每条正确(测试两条);
  2.检查前一个产品版本事务,确认正确,发现其使用odbc,因为后面为了优化改用了mysql编译驱动的方式;
  3.单独拎出来,避免数据库打开失败,其他操作影响,单独只事务插入测试:
  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述
  执行逻辑如下:
  在这里插入图片描述
  至此,确认就是transaction()无法开启事务这个问题导致的。
  4.二次代码确认驱动:
  在这里插入图片描述


原因

  直接使用Qt的mysql对应驱动编译连接数据库,本次环境版本相关是无法使用事务,但是通过ODBC桥接是可以的。


解决方法

  使用手动方式进行事务
  在这里插入图片描述
  测试结果:
  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述


若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/141637721

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长沙红胖子Qt(技术Q群4597637)

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值