如果使用Oracle数据库,Delphi应用程序可以选择从BDE迁移出来

时间:2011-05-24 01:03:04

标签: oracle delphi bde

我们有一个连接到Oracle 8i数据库的Delphi 5应用程序。

大多数逻辑在数据库中作为存储过程选址。目前,我们正在使用Borland数据库引擎(BDE)通过OCI客户端9.2连接到Oracle。

这个应用程序最初是在96年使用Delphi 1编写的,然后在99年升级到Delphi 5。

计划是升级到XE客户端和Oracle 11g。

用其他东西简单地替换BDE并将努力保持在最低限度的选项是什么?

到目前为止,我已经看到了:

  • AnyDAC(http://www.da-soft.com/anydac/)
  • devart ODAC(http://www.devart.com/odac/)<< li>
  • DOA(http://www.allroundautomations.com/)

我不是在考虑DBExpress,因为我不相信它会有我们需要的性能。

重要的事情是:

  • 易于升级,例如向导或其他一些工具来转换DBE组件,
  • 表现良好。

我倾向于devart,因为他们确实有一个迁移工具(尽管它只做部分工作)并且他们有一个直接的TCP选项来连接数据库而无需客户端。

2 个答案:

答案 0 :(得分:4)

您需要了解BDE与其他架构之间的差异。无论您是否计划迁移到dbExpress,都应该阅读并学习this whitepaper

dbExpress的体系结构是一种有意的体系结构,旨在解决不仅在BDE的最低级别,而且在其上层(TTable / TQuery组件)和体系结构中的关键缺陷。了解这些更改的原因以及它们解决的BDE限制是将应用程序从BDE移到任何地方的关键因素。

至于你对表演的争论,我喜欢看到人们使用真实的数据,而不是基于挥手形成的意见,或者没有实验支持的“快速”赋予物体的形容词。

我没有亲自使用DOA,但如果我不打算使用dbExpress,那么对于仅限Oracle的环境,这将是我要评估的下一步。尽管如此,我不认为dbExpress比较慢,没有在我自己的环境中进行测试。

更新:最初我提到了Delphi OCI,但事实证明它已经过时了,而且不是很活跃。关于so​​urceforge的DelphiOCI项目,适用于Delphi 7以及之前,不适用于unicode delphi,只适用于较旧的(Oracle 8i及更早版本)oracle版本......如果这能够在我的环境中工作,我会有试了一下。哦,这是GPL。好的。不太好。

答案 1 :(得分:1)

ODAC和DOA(虽然DOA开发相当陈旧)会让您访问Oracle功能,dbExpress和其他通用DB访问库通常不允许访问。如果您的应用程序仅支持Oracle,并且不需要支持其他数据库,那么完全利用Oracle功能就更好了。 端口的简易性取决于您如何编写BDE组件代码。 ODAC有简化BDE移植的工具(尽管我从未使用它们),而AFAIK DOA则没有。 DOA TOracleQuery不是TDataset的后代,因此它不是直接的TQuery替代品,虽然它具有较少的开销,因此具有良好的性能,而TOracleDaset是唯一类似数据集的组件。 如果没有Oracle客户端,我不会将ODAC直接TCP连接用于Oracle,但是对于非常特殊的需求 - 它是一个不受支持的(通过Oracle)连接,如果一个小的(相对......)足迹我更喜欢使用Oracle Instant Client需要,至少它是一个完全支持的选项,如果需要,让您(或您的客户)向Oracle打开支持请求。