一个QSqlQuery的问题。困扰了有几天了。尝试了各种方法都没能解决。vs2015+qt5.9.1 32位程序
问题描述:QSqlQuery对象操作SQLite数据库。程序除了数据库的七行代码都有其他的干扰代码,执行query.exec("select * from person");语句。exec返回值为true,能获取到数据,但是不管写在哪个函数里面,退出函数的时候跟踪源码会报堆损坏。如图:
尝试的方法:
1.单独执行query.exec(),里面不填SQL语句,函数退出就不会报错。
2.尝试把数据库的变量写成全局变量,程序退出的时候也还是报错。
3.QSqlQuery对象改变写法也会报错。
3.堆损坏提示的函数在百度上较少。没有太多的资料可以查。
4.怀疑是CPU的问题,在amd和英特尔上面都试了全部都一样。
源代码:
源码报错位置:
SQlite数据库内容:
最终解决办法:
不要用vs生成QT项目,有时候会有莫名其妙的错误。最好的方式是QT生成项目。用VS直接打开.pro文件就不会报错了。