Oracle Data Provider for .NET的使用(二)-驱动更换与注意事项
上篇说过了ODP的安装与配置 ,但是个人比较喜欢托管类型的,毕竟非托管类型的,因为考虑到会有用户或者是服务器或者是开发人员有32位的机器,就要强制编译平台平台为32位,只因为这个驱动,有点让人不愉快了。所以,下面主要先讲如果使用托管的驱动,非托管的,看时间吧,我估计除了重量及的ODAC,没人会选择使用非托管的代码,甚至我现在用托管的代码也都不安装,直接那个DLL,然后在CONFIG中配置一下。
那么如何从非托管驱动向托管驱动迁移呢?这个我们先来说一下。
为了方便地迁移,ODP.NET的程序接口不论是否托管,都是相同的,所以,不管你的非托管驱动用了多久,这条路你走了多远,都可以立马向托管驱动切换,而且还很简单。
在过去的版本中,托管驱动比非托管的支持更多的API,但是,现在它们俩都现实了支持最新数据库和.NET框架的特性。
驱动迁移有如下的步骤:
1、将Oracle.ManagedDataAccess.dll引用添加到.NET项目中。
2、将项目中非托管代码的引用改为托管代码的引用,即
using Oracle.DataAccess.Client;
或者
using System.Data.OracleClient;
改为:
using Oracle.ManagedDataAccess.Client;
3、一些在config文件中关于Provider的设置需要进行修改,因为ODP.NET的托管驱动支持较少的windows注册设置,而且有着稍微不一样的.NET配置格式。具体的请看上一篇中,对于ODP的配置介绍。
ODP.NET编程的重要事项
不可以使用Thread.Abort方法,否则非托管的资源有可能会不被释放,从而导致内存泄露和数据损坏。
如果想要更有效的使用资源,ODP.NET的对象(如OracleConnection、OracleCommand)需要及时的被关闭(closed)或释放(disposed),也可以两个操作都执行。这个操作应该在有机会的时候立即执行而不是依赖于.NET自己的垃圾收集(GC)清理资源的时候来处理。许多用户发现,在高并发的情况下,及时的关闭与释放ODP对象,可以十分有效的降低ODP对系统资源的使用。
当遇到由于内存损坏而出现的异常(如:AccessViolationException,Runtime.InteropServices.SEHException)时请勿让程序继续执行,注意是整个应用程序应该停止。
如果注册表HKEY_LOCAL_MACHINE\Software\Oracle\NLS_LANG的值设置为NA,那么ODP.NET会遇到ORA-12705的错误,删除掉这个对象即可解决问题。
Oracle Data Provider for .NET的使用(二)-驱动更换与注意事项的更多相关文章
- Oracle Data Provider for .NET 的使用经验
原文:Oracle Data Provider for .NET 的使用经验 Oracle Data Provider for .NET 是Oracle提供的基于Ado.net接口的一个开发包. ...
- Oracle Data Provider for .NET now on NuGet
Oracle Data Provider for .NET now on NuGet 时间 2015-03-02 22:30:00 Oracle Bloggers原文 http://cshay.b ...
- Oracle Data Provider for .NET Support for Microsoft .NET Core
Oracle Data Provider for .NET Support for Microsoft .NET Core的官方地址,记录下来,按照官方描述,会在2017年底左右发布,暂时还没有看到相 ...
- Oracle Data Provider for .NET的使用(托管与非托管(一))
目录 简单的概述 简单的使用 非托管系统要求 托管驱动系统要求 其它的注意事项 ODP.NET版本说明 安装ODP.NET 安装非托管驱动 非托管驱动绿色配置 简单的概述 ODP.NET的含义是 Or ...
- 通过NuGet安装和配置ODP.NET(Oracle Data Provider for .NET)
前言 本文涉及ODP.NET.ODP.NET的托管(managed)驱动.Entity Framework的托管驱动 这三部分的下载.安装.配置. 1.简介 NuGet 是.NET的软件开发包管理工具 ...
- Oracle Data Provider for .NET的使用(三)-ORACLE与.NET类型对应关系
想来这个是最重要的事情了,因为多数情况下,我们使用dbhelper来调用数据库的时候,是因为如下三个地方导致错误: 1.错误的sql语句:末尾多了分号,少了部分关键字 2.sql中的参数与parame ...
- Oracle Data Provider for .NET
官方地址: http://www.oracle.com/technetwork/topics/dotnet/index-085163.html 终于有正式版了.不用装客户端,又小,确实好.
- Oracle Data Provider for .Net classes文档
官方文档详见:https://docs.oracle.com/en/database/oracle/oracle-data-access-components/18.3/odpnt/odp-dot-n ...
- Oracle Data Provider for .NET – Microsoft .NET Core and Entity Framework Core
http://www.oracle.com/technetwork/topics/dotnet/tech-info/odpnet-dotnet-ef-core-sod-4395108.pdf Orac ...
随机推荐
- DATASNAP数据序列之FIREDAC的TFDJSONDataSets
DATASNAP数据序列之FIREDAC的TFDJSONDataSets DELPHI XE5开始增加了新的数据引擎——FIREDAC,它是跨平台的数据引擎,WINDOWS.LINUX.MAC.APP ...
- win7 32位安装 mong0db
http://blog.csdn.net/u013457382/article/details/50775268
- Spring Bean Life Cycle Methods – InitializingBean, DisposableBean, @PostConstruct, @PreDestroy and *Aware interfaces
Spring Beans are the most important part of any Spring application. Spring ApplicationContext is res ...
- DTD 和 Schema简介
什么是DTD? DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块. 它使用一系列的合法元素来定义文档结构. DTD例子 <?xml version="1.0"? ...
- 【Java】String和Date、Timestamp之间的转换
首先,定义一个Format的日期格式: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 一.S ...
- Commenting and uncommenting XML via Python
转载: http://stackoverflow.com/questions/8764017/commenting-and-uncommenting-xml-via-python from xml.d ...
- KodExplorer介绍
KodExplorer介绍 KOD·简介 官方网站https://kodcloud.com/ KodExplorer可道云,原名芒果云,是一款基于 PHP 开发的开源 WEB 网页版轻量级私有云和在线 ...
- 针对ecshop错误404页面的优化
在ecshop系统当中,比如你随意将商品详细页面的地址中的ID修改为一个不存在的商品ID,ecshop会自动跳转到首页.ecshop在这方面做得非常的差,甚至导致了很多的站不被搜索引擎收录.最模板提供 ...
- 100多道经典的JAVA面试题及答案解析
面向对象编程(OOP) Java是一个支持并发.基于类和面向对象的计算机编程语言.下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改. 代码复用. 增强代码的可靠性和灵活性. 增加代码 ...
- presentModalViewController方法,present一个透明的viewController,带动画效果
//假设需要被present的控制器实例为controller,controller的背景色设置为clearColor UIViewController * rootcontroller = self ...