Oracle ODP.NET版本不可知替代方案
我正在实现一个x64应用程序,连接到Oracle 我应该使用什么驱动程序,以确保用户安装的客户端版本无关紧要 因此,现在我正在使用x64和x86 ODP.NET驱动程序构建我的版本,但我担心当用户安装了旧/新版本的Oracle客户端(ODP.NET)时,这将不起作用 我应该转向OleDB或System.DataAccess驱动程序来避免这个问题,还是根本不会有问题 PS:我以前使用ODBC驱动程序,但是x64上有已知的错误,所以这不是一个选项。哦,Oracle的“乐趣”。。。 好的,基本上,我从来没有为x64版本烦恼过,我只是专门为32位编译了我的程序,所以如果这是一个困难的要求,并不是所有的东西都适用于你 但我得到版本不可知论的原因是不使用任何客户端安装的驱动程序;相反,我在我的应用程序目录中部署了Oracle Instant Client库和ODP二进制文件;如果可以访问,ODP将使用OCI(即时客户端)文件。这是最简单的解决方法,我很高兴我这么容易就解决了它,尽管这方面的信息并不容易获取 对于当前版本(至少在我上次构建应用程序时是最新版本)、11g,ODP和OCI的结合确保了与9-11版本的兼容性 现在,当然,OCI是相当大的(如果内存可用的话,只有英文版的版本较小,只有35MB),但我不得不接受它(部署对我来说不是什么大问题)。除此之外,我还依赖于一个已经有50 ish MB的库——大部分是XML序列化程序集!不要让我开始Oracle ODP.NET版本不可知替代方案,.net,oracle,.net,Oracle,我正在实现一个x64应用程序,连接到Oracle 我应该使用什么驱动程序,以确保用户安装的客户端版本无关紧要 因此,现在我正在使用x64和x86 ODP.NET驱动程序构建我的版本,但我担心当用户安装了旧/新版本的Oracle客户端(ODP.NET)时,这将不起作用 我应该转向OleDB或System.DataAccess驱动程序来避免这个问题,还是根本不会有问题 PS:我以前使用ODBC驱动程序,但是x64上有已知的错误,所以这不是一个选项。哦,Oracle的“乐趣”。。。 好的,基本上,我从
希望这有帮助 恐怕这行不通。无论您使用何种驱动程序,都会在同一进程中直接或间接使用本机OCI.DLL。在您的情况下,它必须是64位版本。因此,您的应用程序无法使用32位OCI.DLL 要解决此问题,您有两个选项:
但我想,这些都不是很现实的选择。这是个好主意。我自己也用过一次(但没有ODP)。遗憾的是,在Java中,您只需添加ojdbc6.jar(2兆字节)即可连接到Oracle,而在C或C中,您需要一个50兆字节以上的复杂设置。我不明白为什么Oracle不能像Java那样为C/C服务。所以,所有面向Oracle的驱动程序都使用Oracle客户端,并且依赖于版本?除了常规ODBC驱动程序(在x64中不起作用)之外,没有其他驱动程序使用ODBC吗?事实上,Oracle的乐趣在于:x64和x86的组合不是问题。我只是想知道如何独立于客户端版本。因此,如果用户决定升级其Oracle客户端,我的应用程序将不会崩溃……Oracle似乎已经在这方面采取了一致行动,请参阅