了解嵌入式数据库(sqlite,firebird)
最近来了兴趣,研究了一下嵌入式数据库,主要有两个代表: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官网:
Sqlite中文社区:
firebird官网:
Firebird中文社区:
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胜出