我有一个相关的帖子 - DBAccess.pas 中的断言失败,但认为这值得单独询问。
我们获得了 DevArt ODAC 的完整源代码版本的许可,但在执行升级时遇到了巨大的困难。在对此进行调查的过程中,我注意到没有 OraNet.dcu 的 .pas 文件。
这使得我们很难确定造成我们困难的原因是什么,因为我们无法完全调试代码。
另外 - 这个单位是什么?根据它的名称和代码中的指令,可以合理地假设它是 .NET 所需的单元——这不是我们感兴趣的东西。
我有一个相关的帖子 - DBAccess.pas 中的断言失败,但认为这值得单独询问。
我们获得了 DevArt ODAC 的完整源代码版本的许可,但在执行升级时遇到了巨大的困难。在对此进行调查的过程中,我注意到没有 OraNet.dcu 的 .pas 文件。
这使得我们很难确定造成我们困难的原因是什么,因为我们无法完全调试代码。
另外 - 这个单位是什么?根据它的名称和代码中的指令,可以合理地假设它是 .NET 所需的单元——这不是我们感兴趣的东西。
在 OraNet.dcu 模块中实现了 Direct DB 连接模式,我们不分发该模块的源代码,这个限制在我们的网站上有说明(页面底部的参考)。如果你不使用 Direct 模式,而是通过 Oracle 客户端(OCI 模式)工作,你可以在你的项目设置中指定 DEFINE NONET,这种情况下 Direct 模式将不可用,并且该模块将不可用用过的。
客户端使用(甚至是 Oracle Instant Client)确实允许使用比我们的 Direct 模式更多的功能,但 Direct 模式在某些情况下的性能甚至超过了 OCI。此外,Direct 模式由于无需提供和部署额外的库,无需设置额外的注册表参数和环境变量,显着简化了应用程序部署并减小了应用程序在磁盘上的大小。Direct 模式还允许将应用程序部署到没有本地 Oracle 客户端的系统,例如 iOS。选择使用 DB 的方式(直接或 OCI)取决于开发人员和每个特定应用程序解决的任务。如上所述,如果不使用 Direct 模式,可以通过设置 DEFINE NONET 来禁用附加模块插入