博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle免客户端For .Net(只为用NewLife.XCode开发Oracle的同学服务)
阅读量:5900 次
发布时间:2019-06-19

本文共 1664 字,大约阅读时间需要 5 分钟。

  自从发布了一篇博客后,非常非常多的同学前来问各种Oracle客户端运行时安装配置的问题,严重影响了我们团队的正常工作和日常交流。我甚至多次怀疑我是不是不应该发那篇博文,但是又不忍心删除!

    我们写那篇博文的初衷,仅仅是为使用我们的数据映射框架XCode(包含ORM)进行Oracle开发的同学而准备

    只是因为这些技术点对于非XCode用户也有用,所以才发出来。不曾想,给我们自己带来这么多的麻烦。

    这里先为XCode用户做一点补充,非XCode用户请直接跳过,看结尾!

 

1,新版本XCode内置Oracle客户端运行时的环境检测,自动在这些目录查找OCI:当前目录、上一级的OracleClient目录、各个盘下的OracleClient目录

2,XCode支持在连接字符串里面通过DllPath=X:\OracleClient来指定OCI目录

3,如果XCode检测不到任何Oracle客户端运行时,会自动到服务器下载一份,并部署到C:\OracleClient。可以自己拷贝到别的盘去

4,所以,XCode用户可以用MSSQL或SQLite等数据库开发好应用程序,然后部署的时候修改连接字符串为Oracle的连接字符串即可,XCode会为你准备好环境。

5,XCode所支持的各大数据库,只要有连接字符串,就可以工作!

6,除MSSQL外,使用其它数据库全部会自动下载相应的驱动(分x86和x64):Access、SqlCe、SQLite、Oracle、MySql、Firebird、PostgreSQL

7,如果生产环境机器不能上网,可以自己把驱动等相关文件拷贝带走。只有用Oracle时会有一个目录放在C:\OracleClient,其它数据库下载的驱动文件全部放在当前目录。(主要是因为OCI那个目录太大)

8,XCode只做下载驱动来使用,不修改系统环境变量和注册表等任何东西,绝对绿色。

9,如果你只想要一个Oracle客户端运行时,可以用我们代码生成器XCoder上新增的一个功能(“Oracle客户端运行时检查”),它会给你准备好一个可用环境

 

最新版XCoder下载链接:

 

非XCode用户请看:

1,只要有OCI,可以不用安装Oracle的任何东西,就可以连上数据库,可能需要配置一下环境变量和注册表

2,该方法无视任何编程语言,非.Net的也可以。比如那个PL Dev,只需要拷贝OCI,然后选项里面指定oci目录即可

3,如果你怀疑上述两点,你可以不用看本文了

4,OCI.dll的版本和Oracle.DataAccess.dll要求的版本必须一致,不一致就自己凑,找到一致的

5,.Net程序调用Oracle.DataAccess.dll,而Oracle.DataAccess.dll会找OCI.dll,顺序是:当前目录、配置文件指定目录、环境变量Path、系统目录

6,如果上面一点没看懂,只怪你Windows没学好。目录搜索逻辑是Windows开发的基本功。

7,再次重申,所做的一次,配置环境变量也好,配置注册表也好,只是为了找到OCI.dll!!!

8,哦,忘了一点,注意OCI所在目录的权限,也许应用程序没有权限执行OCI.dll。另外注意各个目录配置可能导致的DLL版本冲突。

100,据Oracle官方论坛说,官方即将推出纯托管的驱动,到时候只要一个dll就行,再也没有这么多烦人的事情。如果上面这么多办法都不行,就等等吧。

10000,如果还不行,那就用XCode算了!

 

最后:

    在确定你有仔细阅读、思考这两篇博文的内容之前,请不要打搅我们!仅作技术交流,我们不承担任何后果!

 

欢迎各种.Net及逆向工程的交流,QQ群:1600800

 

我不相信神话,我只相信汗水!我不相信命运,我只相信双手!
分类: ,
本文转自大石头博客园博客,原文链接:http://www.cnblogs.com/nnhy/archive/2012/05/28/2520996.html,如需转载请自行联系原作者
你可能感兴趣的文章
坑中速记整理! 使用 kotlin 写第一个 ReactNative Android 模块
查看>>
Qt发布和打包软件
查看>>
后门程序
查看>>
Linux笔记1-简介
查看>>
MsSqlServer2008/MsSqlServer2005命令收集
查看>>
【转】/etc/fstab文件小结
查看>>
一步步搭建NFS服务(1)------理论预备知识
查看>>
玩转文件搜索利器-----find!!!
查看>>
Apache的三种工作模式 及优化配置
查看>>
java高级-多线程深入
查看>>
Hive学习总结之四:HiveQL查询操作
查看>>
PhoneGap/Cordova插件开发入门(IOS版)(一)
查看>>
Xcode的Product Name、Bundle Name、Bundle Display Nam
查看>>
HashMap源码分析
查看>>
关于Activity调用Ondestroy()方法之后内存管理器为什么没有释放占用资源
查看>>
Launcher之Dock细节篇
查看>>
Android Activity 之 startActivityForResult 的使用
查看>>
org.springframework.util 类 Assert的使用
查看>>
eshell中设置环境变量
查看>>
Spring 源码分析(三) —— AOP(三)实现思路
查看>>