最近来了兴趣,研究了一下嵌入式数据库,主要有两个代表:sqlite和firebird(embed版)。是IBExpert。

这两个数据库都有.net数据提供程序,对于我们搞.net的人来说无疑是个好消息。

那么如何在.net使用呢?

sqlite非常方便,只要把其ado.net的dll加入进来便可直接访问了,当然,其连接字符串有

sqlite无疑是最小的一个,单文件程序,只有400k,而它生成的数据库文件也是单文件。它支持大部份SQL92标准,不过遗憾的是不支持外键与存储过程。最新的版本是6.11版,其第三方图形化GUI,我用的是Sqlitespy。

firebird其实并不是纯粹的嵌入式数据库,embed版只是其众多版本中的一个。不过做的也很小,把几个dll加起来才不到5M,但是它支持绝大部份SQL92与SQL99标准,赞一个先!最新的版本是2.1,其图形化GUI特殊的写法。

但firebird就要费点脑子了。首先把其ado.net的dll加入进来,然后加入数据库本身的dll到项目根目录中。你不放在根目录中也可以,但是要在连接字符串中指明dll的路径。一共有6个文件:fbembed.dll,firebird.msg,ib_util.dll,icudt30.dll,icuin30.dll,icuuc30.dll。其中fbembed.dll是主文件。

连接字符串写法如下:

FbConnectionStringBuilder cs = new FbConnectionStringBuilder();  
cs.Database = @"j:\abc.fdb";
cs.ServerType = FbServerType.Embedded; //这句话一定不能掉
//如果不放在根目录,则需要下面一句指明路径,但如果是asp.net程序,则一定要写这句话来进行显示声明。
cs.ClientLibrary = @"bin\fbembed.dll";
FbConnection con = new FbConnection(cs.ToString());
 

下面就可按照ado.net的一般写法往下写了。

这两个数据库与Sql server 有所不同,需要在文档中仔细查验,在这里,我就不多说了。

总之,这两个数据库是不可多得的东东喔!

参考:

Sqlite官网:

www.sqlite.org

Sqlite中文社区:

www.sqlite.com.cn

firebird官网:

http://www.firebirdsql.org

Firebird中文社区:

http://www.firebird.net.cn

firebird 连接嵌入式版本

http://www.host01.com/article/Net/00020003/0562810192156410.htm

sqlite,Access和Firebird的性能比较

http://www.cnblogs.com/kevin-moon/archive/2008/12/01/1344658.html

一次数据库的选型,FireBird胜出

http://s0o0e.javaeye.com/blog/251636