代码之家  ›  专栏  ›  技术社区  ›  Bertvan

神谕ODP.NET版本不可知替代方案

  •  3
  • Bertvan  · 技术社区  · 15 年前

    我正在实现一个x64应用程序,连接到Oracle。

    我应该使用什么驱动程序,以确保用户安装的客户端版本无关紧要。

    所以,现在我正在用x64和x86构建我的版本ODP.NET驱动程序,但我担心当用户拥有较旧/较新版本的Oracle客户机时,这将不起作用(ODP.NET)已安装。

    PS:我以前使用ODBC驱动程序,但是x64上有已知的bug,所以这不是一个选项。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Alex Paven    15 年前

    哦,神谕的“快乐”。。。 好的,基本上,我从不为x64版本烦恼,我只是专门为32位编译我的程序,所以如果这是一个硬性要求,不是所有的东西都适用于你。

    但是,我如何得到版本无关是简单地不使用任何客户端安装的驱动程序;相反,我在我的应用程序目录中部署了Oracle Instant client库和ODP二进制文件;ODP将使用OCI(Instant client)文件(如果可以访问的话)。这是最简单的解决方法,我很高兴我这么容易就解决了这个问题,尽管这方面的信息并不容易获得。

    希望这有帮助!

        2
  •  0
  •   Codo    15 年前

    恐怕这行不通。无论您使用什么驱动程序,驱动程序都直接或间接地使用本地驱动程序OCI.DLL在同一个过程中。在您的情况下,它必须是64位版本。所以你的应用程序不能使用32位OCI.DLL.

    1. 编写一个单独的32位应用程序,负责访问Oracle,并以某种方式与该应用程序通信。

    2. 嵌入64位版本的JavaVM并通过OJDBC访问Oracle(独立于OCI.DLL).

    但我想,这些都不是很现实的选择。