sqlite3_prepare_v2返回26错误码的解决
原创问题描述:
C++写了一个SQLite小工具32位的,在64位win7执行时出错
加工流程:
1 来Debug我有源代码,我怕谁
跟踪定位后sqlite3_prepare_v2()函数,返回错误代码为26.
通过查找26的定义是: #define SQLITE_NOTADB 26 / File opened that is not a database file /
这意味着没有承认db文件。
2 检查db文件
通过常用SQLite工具测试,其中db文件是完好的,能打开查数据。
3 这时, 以为它可能被程序使用sqlite3.dll库版本不正确,
这种情况经常发生在使用某些第三方库时,例如使用c++写mysql应用程序使用 cppconn,需要区分32位64位,也需要区分debug,release并且还要区分vs版本
因此,如果在发布程序时出现轻微错误,那将是一个陷阱。
经检查发现根本没有程序目录sqlite3.dll所以程序必须已加载到系统目录中dll,
通过流程查看工具,发现win7系统目录下的库:windows\syswow64\sqlite3.dll
所以我找到了一份工作32按位库文件sqlite3.dll将其放在程序目录中并再次执行OK了。
问题已经解决了,但还有一个我不明白的问题32如何加载位程序64位sqlite3.dll并且在启动过程中不会出错!?
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
上一篇:Windows和Linux下遍历文件 下一篇:RPC与REST的区别