哪个更好(以及为什么原因)用于从Delphi Win32应用程序--ADO或DBX(数据库快速)连接到MS SQL,Oracle或Firebird?
两者都允许您连接到主要数据库.我喜欢ADO通过连接字符串更改完成所有操作的方式以及ADO和驱动程序包含在Windows中这样的事实,因此无需额外部署(看起来,如果我错了,请纠正我).
DBX也很灵活,我可以将驱动程序编译到我的应用程序中,不是吗?
如果可能的话,我真的很想拥有一个单一来源,能够根据客户的IT部门/偏好来改变数据库.
但哪个更容易编程,性能更好,最有效地使用内存?还有其他什么可以区分它们吗?
谢谢,理查德
在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这样的通用数据访问层是没有意义的:它会尽可能直接地建立连接.我的经验告诉我,这些组合确实运作良好:
带有ADO的 Microsoft SQL Server
希望这能让您深入了解从Delphi应用程序支持多个DBMS的可能性和局限性.
--jeroen
| 归档时间: |
|
| 查看次数: |
3122 次 |
| 最近记录: |