在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来映射的,工作完全正常。
估计网上那个发帖的人也和我遇到了相同的问题,但是可恶的是竟然提供了一个做错的答案,误人子弟!汗一个
相关文档:
这是一个有关分页的实例,仅供参考(代码来自网络)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SQLite;
using System.Threading;
using System.Collections;
us ......
http://www.umgr.com/blog/PostView.aspx?bpId=36294
1. 执行sql语句
int sqlite3_exec(sqlite3*, const char *sql, sqlite3_callbacksql 语法
, void *, char **errmsg );
这就是执行一条 sql 语句的函数。
第1个参数不再说了,是前面open函数得到的指针。说了是关键数据结构。
第2个参数const char ......
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 ......
1. SQLite Database Browser 是一个SQLite数据库管理工具。是开源的、免费的。
Home Page
http://sqlitebrowser.sourceforge.net/
Download
http://sourceforge.net/project/showfiles.php?group_id=87946
Wiki
http://en.wikipedia.org/wiki/SQLite_Database_Browser
2.  ......
sqlite是不错的内存数据库,内存数据库是处理大量并发数据的优先选择。但有些大量数据的并发并不是数据处理本身的问题,例如逻辑上必须有先后次序的数据是并发速度不能解决的问题。抛开这些问题一个简单大容量的解决方案是用一个内存数据库做前端一个硬盘数据库做后端,内存数据库定期把数据同步到后端的硬盘数据库。这个方 ......