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 ...
随机推荐
- 删除VisualStudio 2013中的 "send Feedback" 按钮
在VisualStudio 2013中,在标题栏中增加了一个 "send Feedback" 按钮,用于给微软发送Bug和回馈(或者一个哭脸和笑脸).这个按钮对于开发来说基本上没用 ...
- C++ 11中几个我比较喜欢的语法(三)
随着Vsisual Studio 2013 RC版的放出,之前承诺的对C++ 11语法支持已经全部完成,本文是C++ 11中我喜欢的语法系列的最后一部分(一),(二). 非静态成员直接初始化 在C++ ...
- windows下搭建svn服务器
转自:http://www.cnblogs.com/cloud2rain/archive/2013/04/11/3015080.html 这篇文档非常好,转来学习,有一点就是把subversion创建 ...
- UVa1347 Tour
/*----UVa1347 ---首相两边方向走不方便,可以看做:两个人同时从最左边出发,沿着两条不同路径走到终点,除了起点和中点外 其他点恰好被走过一遍 ---用dp[i][j]表示1-max(i, ...
- 15个最受欢迎的Python开源框架(转载)
一.Django: Python Web应用开发框架 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理 ...
- [Algorithm] Median Maintenance algorithm implementation using TypeScript / JavaScript
The median maintenance problem is a common programming challenge presented in software engineering j ...
- 倍福TwinCAT(贝福Beckhoff)基础教程4.2 TwinCAT如何读写CSV文件
本程序只是在官方范例程序上稍作修改,在官方原有的范例中,演示了多种模式的读写(可以认为CSV文件是比TXT文件需要更多数据量的时候使用,比如记录一个小型的数据库集合) 但是写的比较混乱,甚至没有H ...
- File:方法(具体)
File方法: Name()方法:获取File的名称. getPath()方法:获取File的路径. getAbsolutePath()方法:获取文件或文件夹的绝对路径名称. getParent()方 ...
- vue slot slot-scope
https://segmentfault.com/a/1190000012996217 插槽,也就是slot,是组件的一块HTML模板,这块模板显示不显示.以及怎样显示由父组件来决定. 实际上,一个s ...
- rabbit 函数参数详解
http://blog.csdn.net/chwshuang/article/details/50512057 http://www.cnblogs.com/LiangSW/p/6224333.htm ...