2

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

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

提前致谢。

4

5 回答 5

3

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

据我所知,您需要 170 MB+ 的软件包。

于 2010-02-01T20:05:26.873 回答
1

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

因此,可以创建自己的分发包。 该站点列出了提供商显然需要的文件。我不知道是否还有其他可能需要所有 Oracle 客户端工具包共有的“通用”文件(这可能是使这个想法不切实际的部分)。

于 2010-02-13T01:54:43.493 回答
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

于 2010-02-02T09:12:35.217 回答
0

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

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

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

然后我写了一个专门的版本,直接调用OCI库。速度很快(比 OleDB 快 2 到 5 倍),而且部署简单。

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

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

于 2011-07-10T08:06:36.177 回答
0

这是为 oracle 开发时的主要问题,除非您使用直接连接到 oracle 的ODAC,而无需在客户端计算机上安装 oracle 客户端。

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

于 2010-02-02T11:11:30.150 回答