如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033
系统:Win7 64 SP1
QT:5.5.1
编译器:VS2013
MySQL驱动:
mysql-connector-c-noinstall-6.0.2-winx64(可用)
mysql-connector-c-6.1.11-winx64(不可用)
QT使用MySQL数据库进行事务处理的时候出现不支持事务。API列表 http://doc.qt.io/qt-5/qsqldriver.html
后来发现是libmysql.dll版本的问题。
解决:
改用MySQL 5.5版本的链接库就可以正常使用。
注意事项:
1.MySQL 5.5的链接库测试5.5和5.7的数据库支持事务
2.MySQL 5.7的链接库5.5、5.7的数据库都不支持事务
3.libmysql.dll如果是64位的,QT也必须是64位的,否则会出现驱动不能加载问题
奇怪的问题:
1.非查询语句执行前释放清空上次结果,因为该结果可能会影响事务。(MySQL 5.5的lib连接5.7数据库时出现的问题,先查询然后提交事务会失败,但是直接进行事务就没问题)
参考:
https://bugreports.qt.io/browse/QTBUG-48257
https://stackoverflow.com/questions/45272163/qt-hasfeature-transaction-false-on-mysql-innodb-table
https://stackoverflow.com/questions/13710588/why-is-my-transaction-not-rolling-back-qt-mysql-odbc-driver
觉得文章对你有帮助,可以用微信扫描二维码捐赠给博主,谢谢!
如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033