使用OraOLEDB提供程序部署应用程序

时间:2010-02-01 18:48:09

标签: oracle delphi ado provider

我开发了一个使用Delphi 7,ADO和ORACLE的应用程序,我使用的提供程序是OraOLEDB(我需要使用此提供程序,因为BLOB字段支持)。现在我想与提供商分发此应用程序。我在网上搜索下载Oracle provider,但其大小为 174 mb 。我需要在所有客户端计算机上安装此文件?这个文件的分布较小吗?

更新 我正在寻找OraOLEDB的轻量级(小)分布。

提前致谢。

5 个答案:

答案 0 :(得分:3)

我会选择让用户自己提供它的客户端库。您可以避免出现针对不同Oracle版本,许可问题,安装问题等的oracle OleDb版本不同的问题等。

据我所知,你需要170 MB +的包装。

答案 1 :(得分:1)

似乎该页面上的分发许可证(http://www.oracle.com/technology/software/popup-license/distribution-license.html)允许您重新分发OleDB驱动程序,只要您完全遵守该许可证即可。这是官方的Oracle发行版 - 通常Oracle设置很大 - 如果您不想将它们包含在发布媒体上,您只需将它们指向下载页面即可。

更新:InstanClient下载页面中有一个较小的软件包,请在此处查找Instant Client软件包 - ODAC:http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html

答案 2 :(得分:1)

我对安装OLE DB提供程序有一点了解,但我对Oracle提供程序一无所知,所以这可能不太实用。我看到174MB下载包括许多驱动程序(ODBC,.NET,OLE DB等)。我应该可以(但在现实世界中没有用)用必要的文件创建自己的发行版。关于OLE DB的一个非常好的事情是它通常“简单”安装。运行regsvr32 /i provider.dll将进行必要的注册表更新,以使其在系统上可用。我使用的提供程序不需要像ODBC驱动程序经常需要的那样满是注册表命中的存储桶。

因此,可以创建自己的分发包。 This site列出了提供商显然需要的文件。我不知道是否有其他可能必要的Oracle通用工具包通用的“通用”文件(这可能是使这个想法变得不切实际的部分)。

答案 3 :(得分:0)

这是开发oracle时的主要问题,除非您使用ODAC,它与oracle直接连接,在客户机上没有安装oracle客户端

并且它比使用ADO或OLE DB提供程序快得多。

答案 4 :(得分:0)

分发Oracle客户端应用程序可能是一场噩梦,当今64位Windows时更是如此。

您必须安装哪个版本的客户端?您的Delphi应用程序需要32位版本。但是,如果其他程序确实需要访问64位版本呢?您需要多个ORACLE_HOME,具有重复设置,或强制您使用DotNet代码以32位模式运行。

我首先编写了一个Delphi wrapper using OleDB,然后我意识到在使用Oracle DB时部署它是多么困难。和你一样的问题......

然后我写了dedicated version, calling directly the OCI library。速度很快(比OleDB快2到5倍),易于部署。

您可以使用Oracle提供的 Oracle Instant Client的最新版本 - 请参阅this download link - 它允许您在不安装标准(大型)Oracle客户端的情况下运行应用程序一个ORACLE_HOME。只需将dll文件放在与您的应用程序相同的目录中,它就能正常工作。

此解决方案的缺点是它与DB感知组件不兼容。但是如果你直接使用TQuery,那么将结果映射到Delphi类中,它可能是一个很好的解决方案。