成功移植SQLite(STM32 .NET MF平台)

2019-12-18 18:45发布

SQLite V2x和V3x比较
项目        V2.8.17        V3.7.15
API接口个数        44        207
源文件个数        44        89
源代码字节数        1.32M        4.0M
Win32 dll库大小        209K        591K
文本编码支持        UTF-8或iso8859        UTF-8、UTF-16
二进制数据(Blob)        不支持        支持
行编号        32字节        64字节
并发性        多读,单写        改良的并发性
.NET Micro Framework的核心代码也不过300K左右,如果支持一个比自己核心还大的多的数据库,真有点小马拉大车的感觉,所以在满足基本功能的基础上(以前我比较担心V2x版本的国际化应用,比如是否支持中文),代码大小是我最关注的。
在Windows平台上对SQLite V2.8.17进行测试后,决定移植V2x版本的SQLite(当然后续不排除再移植3.0版本),移植成功后,release版本的 SQLite的大小大概130K左右。
SQLite V2x和V3x .NET Framework开发
考虑到.NET Micro Framework是.NET框架,所以最初研究的是System.Data.SQLite.dll库,后来发现,一是System.Data.SQLite.dll封装的太过复杂,二是System.Data.SQLite.dll对.NET Framework的框架非常依赖,并且针对不同平台,很难做到直接拷贝就可以使用(必须要安装),三是没有支持SQLite V2x的版本。
所以最后还是决定用Interop的方式直接访问Win32 的 SQLite.dll。网上搜索了一下,有关于SQLite3的相关示例,SQLite V2x的就没有了。所以先研究了一下SQLite3的接口应用,然后根据C++相关的接口定义,反推了一下SQLite V2x的C#接口。
在Windows .NET Framework平台测试SQLite V2x接口(如下图)没有问题的情况下,才开始进行.NET Micro Framework 平台下的SQLite V2x的移植。
sqlite203.JPG (328.47 KB, 下载次数: 5) 下载附件 2013-1-16 12:07 上传

详情,请参见博文:http://blog.csdn.net/yefanqiu/article/details/8508687
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。