【问题标题】:Alternatives to connect to ORACLE database server without install the Oracle client无需安装 Oracle 客户端即可连接到 ORACLE 数据库服务器的替代方案
【发布时间】:2022-01-25 18:54:05
【问题描述】:

我正在寻找一个无需安装 oracle 客户端即可直接连接到 ORACLE 数据库服务器的 Delphi 组件。

我从DevArt 知道Oracle Data Access (ODAC)。是否还有其他组件具有此功能?

ODAC 提供两种连接模式 Oracle 服务器:连接通过 客户端中的 Oracle 调用接口 模式 并通过 TCP/IP 直接连接 在直接模式。基于 ODAC 的数据库 应用程序易于部署,做 不需要安装其他数据 提供者层。

提前致谢。

【问题讨论】:

  • 为什么要避开Oracle客户端?

标签: oracle delphi delphi-7


【解决方案1】:

不,没有其他 Delphi Win32 库允许在没有安装 Oracle 客户端的情况下连接到 Oracle。而且,恕我直言,这是正确的,因为:

  1. OCI(Oracle 调用接口)是一个相当复杂的软件。我会说,它是世界上最复杂的闭源 DBMS 调用级接口。它正在从一个版本到另一个版本。 Oracle 有官方规定——Oracle Client v X 支持 Oracle Server v X-1 ... X+1。因为即使是 Oracle 这样的公司,也不想花费资源来支持和测试所有可能版本的所有协议细微差别。所以,我认为 DevArt 永远不会实现 99.9% 稳定的 Oracle SQL*Net 协议实现。 INet 发布了证明......
  2. AFAIK,ODAC 网络模式不支持 Oracle 客户端的一些重要特性,并且有一些重要限制。虽然它适用于简单的数据访问场景。
  3. 如果您将购买 Oracle 支持,那么它将拒绝您的所有支持请求,如果他们知道您没有使用官方客户端软件。这只是 Oracle 规则。
  4. 如果您不喜欢安装和调整完整的 Oracle 客户端,那么您可以只使用 Oracle Instant Client。不需要安装或设置过程。在不同的数据访问场景和 Oracle Server 版本的情况下,您将是安全的。

PS:虽然我可能被认为是一个有偏见的人:)

【讨论】:

  • 只是挑剔:没有英文单词“场景”。根据上下文,您的意思似乎是“场景”。
  • +1 因为 OCI 很大,但它是为了获得最佳性能和更好的支持而使用的(例如,客户端缓存是一项复杂的功能,仅由 OCI AFAIK 处理)。 +1 因为你引用了Oracle Instant Client。我只是 finished a direct wrapper to OCI,使用 Oracle Instant Client。像魅力一样工作,无需任何设置即可运行!当然,与 Delphi 应用程序相比,OCI 很大,但它运行得很快……
【解决方案2】:

还有Allround Automations 直接Oracle 访问,它确实需要Oracle SQL*Net 或Net8。但它是一个出色的组件套件。

【讨论】:

    【解决方案3】:

    我找到的唯一解决方案是 ODAC,它工作得非常好,多年来我一直在使用它,直接模式没有任何问题。

    直接模式有一些限制,但大多数用户的应用程序不会受到这些限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-25
      • 1970-01-01
      • 1970-01-01
      • 2019-10-19
      • 1970-01-01
      • 2021-03-02
      • 2011-01-01
      • 1970-01-01
      相关资源
      最近更新 更多