使用Delphi的ADO或DBX

6 database delphi ado dbx

哪个更好(以及为什么原因)用于从Delphi Win32应用程序--ADO或DBX(数据库快速)连接到MS SQL,Oracle或Firebird?

两者都允许您连接到主要数据库.我喜欢ADO通过连接字符串更改完成所有操作的方式以及ADO和驱动程序包含在Windows中这样的事实,因此无需额外部署(看起来,如果我错了,请纠正我).

DBX也很灵活,我可以将驱动程序编译到我的应用程序中,不是吗?

如果可能的话,我真的很想拥有一个单一来源,能够根据客户的IT部门/偏好来改变数据库.

但哪个更容易编程,性能更好,最有效地使用内存?还有其他什么可以区分它们吗?

谢谢,理查德

Ces*_*ero 7

ADO易于使用,并且在那里,您只需确保在客户端安装相应的客户端驱动程序.

我发现DBX更灵活,它更好地集成在IDE和DataSnap等其他技术中.

出于与您相同的目的,我使用了来自DevArt的 DBX和第三方驱动程序.如果您购买了驱动程序源,则可以使用您的应用程序编译驱动程序.


Jer*_*ers 5

在Delphi的开头,人们称赞Delphi中的多DBMS支持.每个人都喜欢BDE(因为这是唯一的方法).

但是,在过去十年中查看客户时,我看到他们的应用程序中的多DBMS支持不断减少.

从一个应用程序支持多个DBMS的成本很高.

不仅因为您必须了解每个DBMS,还因为每个DBMS都有自己的一组特性,您必须在数据访问层中进行调整.这些不仅包括语法和基础数据类型的差异,还包括优化策略.

此外,某些DBMS可以更好地与ADO配合使用,更好地通过直接连接(例如一起跳过Oracle客户端).

最后,使用多个DBMS系统测试软件的所有组合是非常密集的.

我参与了一些项目,我们不得不改变DBMS后端和/或数据访问技术(从BDE到DBX,或从DBX到直接连接).改变后端总是比改变数据访问技术更痛苦.多层方法使它们更容易,但增加了自由度,从而提高了测试工作量.

我认为支持多DBMS的一些产品是在垂直市场应用程序中,最终客户已经拥有自己的DBMS基础架构,应用程序需要适应这一点.例如,在荷兰政府领域,Oracle非常强大,但SQL Server也建立了相当多的用户群.

因此,您需要考虑要支持的DBMS组合,不仅在功能方面,还在成本方面.

如果你坚持使用一个DBMS,那么选择像BDE,DBX或ADO这样的通用数据访问层是没有意义的:它会尽可能直接地建立连接.我的经验告诉我,这些组合确实运作良好:

希望这能让您深入了解从Delphi应用程序支持多个DBMS的可能性和局限性.

--jeroen

  • 我将添加ZeosDB一个开源计划,以允许开发人员后端RDBMS中立. (2认同)