使用之前封装sqlite3的SqliteImpl模块时遇到以下几个问题:
1.CDbHelper::Open必须调用SetKey(一直没有合理解释)
2.SetKey后创建的库,使用Navicat for SQLite无法打开,提示错误"file is encrypted or is not a database"
3.即使不考虑情况2,以前也是这么使用的,但执行insert比较多记录的文件时报错,提示类似临时文件空间不足
升级到最新版本
sqlite3版本: version 3.8.10.2
下载
http://www.sqlite.org/download.html
http://www.sqlite.org/2015/sqlite-dll-win32-x86-3081002.zip
压缩包中有2个文件:
.sqlite3.def
.sqlite3.dll
根据sqlite3.def文件生成vc2010的sqlite3.lib
执行命令:
"C:\Program Files (x86)\Microsoft Visual Studio 10.0"\VC\bin\lib /out:sqlite3.lib /MACHINE:IX86 /DEF:sqlite3.def
提示"丢失mspdb100.DLL",解决方法:
从Common7\bin\复制mspdb100.dll到lib.exe所在目录.
执行以下命令生成bcb的sqlite3.lib
coff2omf.exe sqlite3.lib sqlite3_bcb.lib。
升级应用到工程中时提示无法链接以下符号,注释这些相关代码即可.
.sqlite3_key
.sqlite3_rekey
.sqlite3_temp_directory