QSqlDriver.hasFeature(QSqlDriver::Transactions) false

来源:互联网 发布:亚马逊aws 知乎 编辑:程序博客网 时间:2024/06/03 10:59

如需转载请标明出处: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


原创粉丝点击