当前位置:  开发笔记 > 编程语言 > 正文

在Delphi应用程序中使用哪个嵌入式数据库?

如何解决《在Delphi应用程序中使用哪个嵌入式数据库?》经验,为你挑选了9个好方法。

我正在Delphi中创建一个桌面应用程序,并计划使用嵌入式数据库.我使用SQlite3和DISQLite3库启动了项目.它有效,但文档似乎有点轻松.我最近发现Firebird(是的,我已经离开了Windows一段时间),它似乎有一些引人注目的功能和支持.

每个嵌入式数据库有哪些优缺点?规模很重要,支持和资源也很重要.你用过什么,为什么?



1> gabr..:

我正在使用Firebird 2.1 Embedded,我对它非常满意.我喜欢数据库大小实际上是无限的(使用> 4 GB数据库进行测试并且它可以工作),并且数据库文件与Firebird服务器兼容所以我可以使用标准工具进行数据库管理和检查.分发包括在exe文件夹中删除少量文件.

不支持从多个程序同时访问,但是从多个线程同时访问(只要您确保在任何给定时刻只有一个'connect'操作正在进行中).


不再需要从Firebird 2.5嵌入式独占访问开始.多个应用程序可以同时访问本地数据库.
Embarcadero刚刚宣布RAD Studio 2010将包含本地Firebird支持.所以我现在同意Gabr一样,这似乎是要走的路

2> Lou Franco..:

我在许多项目中使用过SQlite3(但是来自C/C++和Objective-C).它非常小 - 没有任何依赖 - 数据库在一个文件中.

它是Mac开发人员的首选数据库,因为它直接受到CoreData和iPhone的支持 - 因此有一个庞大的用户群(更不用说所有其他用户).



3> Nick Bradbur..:

我一直在FeedDemon中使用SQLite(通过DISQLite3)几个月,我强烈推荐它 - 它非常快速和稳定.正如Javier所说,库的文档可能很薄,但SQLite本身的文档非常好.



4> Jim McKeeth..:

我在许多项目中使用过DBISAM.它完全嵌入,甚至不需要外部DLL.与您列出的其他产品不同,它是商业的.虽然有很多很棒的功能,但很好地记录和支持.有一个接班人,我还没有尝试过.



5> Max Lybbert..:

让我们看看,快速比较:

SQLite的:

动态键入数据库

跨平台文件

在Windows,Linux,Mac等上运行

公共区域

支持交易

依赖于文件系统安全性,不包括自己的安全性

Firebird嵌入式:

强大的数据库输入

并非所有SQL数据类型都受支持

跨平台文件

Firebird嵌入式仅在Windows上运行

Firebird嵌入的文件格式与完整服务器版本相同

可以将Firebird嵌入的文件复制到非Windows服务器以供使用

根据修改后的MPL提供("我们的是什么,我们必须保持免费,你的是什么,你不必发布它")

支持交易,触发器等

MySQL嵌入式:

对SQL功能的支持取决于文件格式

(IIRC)跨平台文件

除非您支付版税,否则GPL

在Windows,Linux,Mac上运行

非常受开源人群欢迎

即使是嵌入式数据库也有其优点和缺点.你需要权衡那些优势和劣势与你正在做的决定.



6> 小智..:

Firebird嵌入式是我们的首选,因为没有代码更改,可以将具有嵌入式数据库的单个用户Delphi应用程序迁移到基于多用户服务器的部署,而不会牺牲任何高端功能(例如存储过程,触发器,视图,等等.).它是一个真正的免费数据库,并且在此过程中不会对您的代码进行GPL.



7> 小智..:

强烈建议在使用Databases和Delphi时使用AnyDAC - 然后您可以选择无缝地定位FB或SQLite.

我倾向于FB用于嵌入式应用程序.汤姆



8> Jeremy Mulli..:

我使用Sybase的Advantage Database Server,但我也是研发经理,因此这篇文章有偏见.:)

我们为WIN32 VCL和VCL.NET提供了原生的Delphi TTable和TQuery组件.除SQL支持外,直接表访问使Advantage在许多其他Delphi产品中独一无二.Advantage支持大型表(仅受记录数量限制,20亿)并且具有免费的本地引擎,这对于开发PC和不需要客户端/服务器功能的小客户站点非常有用.使用单个连接属性切换到客户端/服务器,不进行其他更改.

我们拥有大量客户端,因此访问Delphi之外的数据也非常简单(.NET数据提供程序,ODBC,OLE DB,PHP,Perl,JDBC等).

主要产品网站:http://www.advantagedatabase.com Developer's Web站点:http://devzone.advantagedatabase.com



9> vrad..:

这真的取决于你的需求.对于单用户应用程序,Firebird Embedded或SQLite可能是最佳选择(价格合适).另一方面,如果您需要支持大量多个用户,您应该使用常规Firebird而不是嵌入式版本(服务器安装简单,因此您不会遇到太多问题).

如果你需要介于两者之间的东西,对于一个适度的多用户应用程序,一个平面数据库会更好.我发现ComponentAce的Absolute Database比DBISAM,NexusDB或VistaDB更适合我的需求.

它留下了相对较小的占用空间(没有DLL),它是单文件数据库(对我而言必须),支持Unicode,BLOB压缩,加密和技术限制似乎给平面数据库留下深刻印象.而且,在我需要的时候,支持很少.

对于缺点,我注意到它不支持嵌套事务,但除此之外,我没有遇到任何问题.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有