sqlite3_prepare_v2返回26错误码的解决
2017-09-12 17:26
344 查看
问题描述:
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并且不会在启动时报错!?
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并且不会在启动时报错!?
相关文章推荐
- sqlite3_prepare_v2 返回 SQLITE_ERROR
- sqlite3_prepare_v2返回1
- [iPhone-Sqlite3]sqlite3_prepare_v2() 不返回 SQLITE_OK,调试
- [iPhone-Sqlite3]sqlite3_prepare_v2() 不返回 SQLITE_OK,调试
- 手机移动端浏览器或PC端浏览器莫名出现计算错误或莫名返回到登录界面等问题的解决.
- Spring MVC Rest服务 返回json报406错误的解决办法
- 解决spring boot中rest接口404,500等错误返回统一的json格式
- SQL Server 返回了错误 21(设备未就绪。) 解决方法
- 解决android4.4以上手机调用系统相册路径返回错误的问题
- 解决springmvc 返回JSON报406错误
- “远程服务器返回错误: (404) 未找到”的正确解决方法
- 远程服务器返回错误: (401)未经授权的解决办法
- 解决javascript中的window.open返回object的错误
- 如何解决ubuntu中使用SDL_OpenAudio失败返回错误信息no such audio device
- fedora26 (4.12.8-300) 之 vmware pro / vmware player 12.5.7安装运行错误解决
- “远程服务器返回错误: (417) Expectation failed“解决方法
- 解决:对COM 组件的调用返回了错误 HRESULT E_FAIL
- C#操作FTP报错,远程服务器返回错误:(550)文件不可用(例如,未找到文件,无法访问文件)的解决方法
- gsoap入门:解决axis2服务器返回错误:com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "ns1"
- druid 执行SQL出现错误但不影响返回结果的解决方法