易截截图软件、单文件、免安装、纯绿色、仅160KB

在sqlite数据库中,int类型不等于integer数据类型

这些天一直在忙销售管理软件易卖通客户端的程序编写,由于需要采用本地数据缓存机制来提高程序的数据访问效率,所以需要在客户端使用一个小巧的本地数据库。这个数据库当然要小而精悍的。我也不想做强盗,于是就选择Sqlite吧——文件数据库,只要一个Sqlite.dll就可以操作数据库。
不得不趁人本人是有点偷懒,Add Nhibernate+ActiveRecord做O/R mapping,貌似这样的架构有杀鸡用牛刀之嫌。
昨天碰到一个非常怪异的问题,当我调用ActiveRecordBase.FindAll的时候,返回一个数组内部的所有元素都是null。
这就奇怪了,数据库里面已经存在数据。于是上网查资料,看到有一个家伙说不能把Primary key映射为Identify,只能用Native。修改后还是不行,TMD,网络上的骗子还真不少,特别是国内,忽悠的人多,真才实学的少!
于是开始测试其他表的FIND功能,一切工作正常。见鬼,DAMN!
于是用.sch命令查看表的schema异同,发现除了Primary key的定义有一点差别外,无异常。
又开始怀疑是不是DLL加载情况,联想到文档说要加载DynamicProxy,马上下载新版本DynamicProxy。还是不管用。
抱着死马当活马医试试看的心态,修改了表的Primary Key定义,也就是把原来Primary key中的int类型字段,改成了integer类型。。。测试通过。。。啦!
公布答案,表的Primary key被我定义成int而不是integer,修改后就行了,而且,此列是可以用Identify来映射的,工作完全正常。
估计网上那个发帖的人也和我遇到了相同的问题,但是可恶的是竟然提供了一个做错的答案,误人子弟!汗一个


相关文档:

SQLITE的局限性

SQLite和其他大部分现代SQL数据库在基本设计目标上是不同的,它的目标是简单。SQLite遵循这一目标,即使这样偶尔会导致某些特性实现的低效化。下面列举了SQLite的一些缺陷:
SQL-92特性方面
正如前面提到的,SQLite不支持SQL-92的在很多企业数据库系统中可用的一些特性。
如:
外键约束(可解析的,但非强制)
很多ALT ......

sqlite内存数据库使用有感

SQLite不仅可以把数据库 放在硬盘上,还可以放在内存中(sqlite3_open(":memory:", &db)),经测试,同样条件下数据库放在内存中比放在硬盘上插入记录速度快差不多3倍。但数据库放在内存中时有如下缺陷:
1、断电或程序崩溃后数据库就会消失,你需要定期Attach到硬盘上备份;
2、在内存中的数据库不能被别的进程 ......

[转]Java连接SQLite db数据库文件

Java连接SQLite数据库详解 下载SQLite数据库的JDBC 这里给出一个中文站点的URL: 设置环境变量: 将下载到的包解压后得到jar包 sqlitejdbc-v033-nested.jar 放到%JAVA_HOME%\lib 下,并且将其添加到classpath系统环境变量中,我的classpath系统环境变量现在为: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\li ......

如何高效使用SQLite .net (C#)

 SQLite 作为一个轻量级嵌入式数据库,还是非常好用的。雨痕极力推荐~~~~~~ 
今天有个朋友测试 SQLite,然后得出的结论是:SQLite 效率太低,批量插入1000条记录,居然耗时 2 分钟!
下面是他发给我的测试代码。我晕~~~~~~ 
using System.Data;
using System.Data.Common;
using System.Data.SQLite; ......

sqlite想到一些事2

sqlite是不错的内存数据库,内存数据库是处理大量并发数据的优先选择。但有些大量数据的并发并不是数据处理本身的问题,例如逻辑上必须有先后次序的数据是并发速度不能解决的问题。抛开这些问题一个简单大容量的解决方案是用一个内存数据库做前端一个硬盘数据库做后端,内存数据库定期把数据同步到后端的硬盘数据库。这个方 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号