QT里使用sqlite的问题,好多坑
1. 我使用sqlite,开发机上好好的,测试机上却不行。后来发现是缺少驱动(Driver not loaded Driver not loaded),代码检查了又检查,发现应该是缺少dll文件(系统不提示,是自己使用 QMessageBox::warning(NULL,("error"),database.lastError().text());后猜到的)。于是自己千方百计的想办法,反复测试,就是不行。结果悲剧的发现,原来是多次设置路径错误,浪费一上午时间。应该直接在可执行exe文件的同一目录下设置目录和文件如下即可: 2. 编程的时候,注意不能使用new QSqlDatabase();后调用addDatabase()函数。原因是什么我也不知道,反正结论在这里: 3. 编程的时候注意,要填上QSQLITE,不是SQLITE 4. 使用QSqlDatabase::addDatabase函数的时候,如果是一个临时对象,那么要把它命名一下,比如(关键是第二个参数): 5. 使用 QSqlDatabase::removeDatabase的时候,必须把前面所有语句括号括起来,莫名其妙的一种用法。不过既然是官方文档这样说,就记住它,遵守它,相关链接在这里: 6. 还有一个文件qsqlited4.dll,不知道是干什么。 7. 可以很方便的使用VS编译C:Qt4.8.6_2008srcpluginssqldriverssqlite路径下的sqlite.pro工程文件,Release编译后得到一个dll,放在相关的路径里使用没有问题。 8.Process Explorer这个软件可以清楚地显示,当前开发exe文件依赖哪些DLL,很有帮助。这样就不用动脑筋了,观察结果即可。比如它我对这个项目提示依赖: C:Qt4.8.6_2008pluginssqldriversqsqlite4.dll 但它的提示也只能作为一种参考,不能完全当真,它还提示我使用: 总结,QT发布版的坑真是多,怪不得QT公司不让免费用户静态编译和修改,大概是只让高手们用它来玩的。不知道静态编译是否可以避免这些问题。 --------------------------------------------------------------------------- 几个有用连接: 安装MySQL驱动: 插件工作机制: SQLite学习手册 FROM: http://www.cnblogs.com/findumars/p/4207133.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |