- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
新疆众和 XINJIANG JOINWORLD CO., LTD. 新疆众和 XINJIANG JOINWORLD CO., LTD. C#应用程序开发(CS) 免安装Oracle户端的问题当前,随着数字化和网络化的发展,应用开发程序能够简洁部署已成为重要的应用环节。由于信息化的发展,我公司先后实施了电极箔生产管理系统,电子铝箔生产管理系统,高纯铝生产管理系统,每个生产管理系统都存在着ORACLE客户端的使用安装。维护工作量相当大。如何解决C/S架构下不安装ORACLE客户端是一个非常重要的问题在开发生产管理系统项目中使用.Net链接Oracle数据库,有两个驱动:一个是Microsoft Corporation公司.Net产品自带的,一个是Oracle公司开发的ODP.Net的驱动。Microsoft Corporation公司.Net产品自带的驱动,必须用TNS方式连接数据库必须用TNS方式连接数据库,而不能用这种:Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 4)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ORC)));User ID=admin;Password=admin; 一 、项目研发背景开发Oracle的.Net程序,标准流程是先安装Oracle客户端,然后使用.Net自带驱动或者ODP.Net。其实只要按照这个流程来做,基本上不会有错误,要错也只是TNS错而已。由于Oracle客户端实在是无比庞大,尽管后来可以只安装Oracle客户端运行时,仍然很大。 在此方案中,我们希望能做到免安装,伴随着我们开发的主程序拷贝过去就能用。经过多次测试,Oracle客户端运行时的关键在于OCI,也就是说,不管用什么语言写的程序,只要能找到运行时的oci.dll,基本上就能链接Oracle数据库了。 综合比较:Microsoft Corporation公司.Net产品自带的驱动和Oracle公司开发的ODP.Net的驱动 比较项目 .Net自带Oracle驱动 Oracle ODP.Net驱动 连接字符串TNS写法 支持 支持 连接字符串非TNS写法 不支持 支持 是否支持Oracle9运行时 支持 不支持 是否支持Oracle11运行时 支持 支持 OCI目录设置方式 环境变量Path中设置 环境变量Path中设置 其它环境变量 需要设置ORACLE_HOME 无 运行时安装包大小 9i运行时安装包13M 11g运行时安装包30M最新ODP.Net共52M 绿色精简后大小 9i运行时6.5M 11g运行时30M 据说的差别 性能底下,功能特性少 性能最高,功能特性多 二、项目技术方案 1、Oracle数据库连接,采用ORACLE ODP.NET oci.dll: 主要是Client.OracleCommand事件。 ociw32.dll:主要是oracle客户端及网络组件。 orannzsbb11.dll、oraocci11.dll、 oraociei11.dll:Oracle.DataAccess.Client.OracleException异常事务处理 Oracle.DataAccess.dll:数据库连接处理。 OraOps11w.dll: 主要是Client.OracleCommand事件。 实际上,这是使用ODP.Net经常遇到的问题,在ODP.Net中,Oracle.DataAccess.dll=OraOps11w.dll=oci.dll,前面两者的版本必须100%匹配。 应用程序必须找到上述文件的路径。 2、客户端监听处理。 oracle.key、classes12.jar、ojdbc14.jar classes12.jar、ojdbc14.jar必须在注册表里注册文件路径或环境变量。 3.配置d:\oracleinstantclient的tnsnames.ora文件,在当前\NETWORK\ADMIN下存放文件tnsnames.ora只需要修改其中的服务器地址、服务名称和端口。 tnsnames.ora文件内容 orcl =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 81)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl))) 4、注册表加入下面键值变量名: 1) ORACLE_HOME变量值:D:\Program Files\instantclient_10_2 2) 变量名
文档评论(0)