firebird是一个跨平台的开源数据库,适用interbase授权协议(IPL),从borland的interbase脱胎而来。以前用interbase/firebird的时候,发布程序的时候哪怕只有一个用户至少也得安装一个localserver,一些单机版的程序只好使用access来保存数据。但是微软那个mdac偏偏常出现一些莫名其妙的问题,access2000的数据库文件在win98上就经常出现“插入时无法定位...”、“遇到BOF/EOF...”一类不知所云的错误提示,安装新版mdac并打上oledb补丁就能解决问题,不过一个几百k的小程序要带上七八兆的补丁感觉实在不好。我就一直希望能够把interbase/firebird应用于桌面数据的存储,就是因为那个安装服务器的问题一直没有好办法。
现在终于发布了嵌入式的firdbird,我们可以用firebird embbed作为桌面数据库了,跟C/S版的firebird数据奎一样,对许多现代数据库特性提供充分的支持,可以使用触发器、存储过程,可以自定义类型,可以自定义外部函数。而且他与firebird C/S使用相同的文件格式,也支持将一个数据库文件存储到多个文件,把它的数据文件放到firebird C/S上立刻就可以使用,你随时可以把单机应用改造成C/S或者放到web上。应用程序开发与firebird C/S 没什么不同,可以使用它的C API,也可以使用Delphi/BCB的interbase和dbx组件,当然,安装了odbc驱动以后,用ado也是可以的。发布程序时只需要提供一个dll,我们的fire bird应用程序就可以工作了(用ado不行,用dbx还需要midas.dll和dbexpint.dll),可以很容易地制作出安装程序,所有的配置工作都可以由程序员自己控制,也不用担心数据库会被用户直接打开进行改动了。而且据我所知,嵌入式数据库好像还没有支持存储过程和触发器的吧,access,sqlite都不行,更不用说dbf和paradox了。