我目前正在使用BDE组件连接到Delphi 5专业版的数据库。我的问题是BDE组件需要BDE管理员才能在另一台机器上运行应用程序。所以我打算购买一个包含ADO组件的新版Delphi。
问题:ADO组件是否也存在像BDE这样的问题? ADO组件是否需要任何特定的设置才能在另一台机器上运行应用程序?
感谢您的帮助。
答案 0 :(得分:4)
所有组件在某些方面都存在问题,在ADO
非常稳定的情况下,但是您可以在提供程序中遇到一些特定问题(例如臭名昭着的不支持使用Microsoft提供程序的ORACLE中的blob字段)但肯定更值得推荐的是使用ADO代替deprecated BDE
。关于依赖项,ADO使用提供程序连接到RDBMS,其中大多数是由MDAC (Microsoft Data Access Components)安装的,{{3}}包含在大多数Windows版本中。所以在大多数情况下你不需要安装任何附加组件,至少你想要使用不包含在MDAC中的提供者,如MySql,Firebird或其他组件。
答案 1 :(得分:1)
听起来像是you posted two times the (almost) same question ......这次更关注ADO。
正如前一个问题中所写,如果您尝试使用ADO或OleDB连接到Oracle数据库,您将发现所有OleDB提供程序都有处理Oracle BLOB的错误:Microsoft的版本只是不要处理它们,Oracle的版本将randomly return null for 1/4 of rows ...所以恕我直言ADO或OleDB不是访问Oracle数据库的严肃选择。 :(
如果您的目的是摆脱BDE安装,您会发现Oracle的OleDB提供商非常庞大,并且BDE更轻巧,更好......标准的Oracle& #39;包含OleDB / ADO提供程序的客户端安装(未安装在" Light" Oracle客户端版本中),需要大约660 MB的.zip设置...
在真实的数据库数据上,我发现我们的Open Source direct access to Oracle比OleDB提供程序快2到10倍,而不需要安装这个提供程序(也不是BDE)。您甚至可以使用Oracle提供的Oracle Instant Client,它允许您在不安装标准(大型)Oracle客户端或拥有ORACLE_HOME的情况下运行应用程序。只需将dll文件放在与您的应用程序相同的目录中,它就能正常工作。
当然,这是完整的开源,从Delphi 5到XE都有效。因此,当您的项目可能升级到较新的Delphi版本时,它将起作用。您与non-Unicode Delphi 5-Delphi 7 version of Oracle components, as you can found on Torry's无关,例如但这些组件可能会帮助您摆脱现有项目的BDE安装。
如果您不在数据库中使用BLOB,则可以使用ADO。在这种情况下,我的建议是read this post,并使用Delphi 5中提供的TADODataset
。
答案 2 :(得分:0)
Ok Naren,因为你在Oracle上,你可以使用这个Oracle驱动程序DOA。我们只在Delphi项目中使用它。
我们所有的Delphi项目都在Delphi 7上,但我们现在将它们全部转换为Delphi XE。使用DOA时,您需要在客户端计算机上安装Oracle客户端库。好处是速度和Oracle支持,因此DOA驱动程序不需要像ADO那样处理最常见的命令集,因此Oracle支持非常棒。