Oracle 数据存取组件(ODAC) 库为Borland Delphi,C++ Builder 以及 Kylix提供了一些非可视化的组件。它们用来存取Oracle关系数据库系统。与BDE类似, ODAC 也是一种可供选择的处理数据的方法之一。

ODAC 直接使用 Oracle 调用接口 (OCI). OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口(API)。 OCI 通过一个动态运行库(ORA*.DLL)提供了一个标准的数据库存取库及函数,以在应用程序中建立连接。也可以使用ODAC的Net选项而无需在客户机上 安装Oracle客户端来连接到Oracle.在这种情况下,ODAC仅需要TCP/IP协议的支持,从而可以创建真正的、最小的数据库应用程序。

与使用BDE开发 Oracle C/S(客户/服务器)应用程序不同的是,BDE不能存取Oracle的一些特殊功能,不能使用更多的资源,不能高速处理数据,而且不定期有麻烦的应用程序分发以及管理。

.net(C#)编程过程中,使用到了以下三种免安装的Oracle访问组件,能够不安装Oracle客户端,通过这些组件访问Oracle数据库

1:Oracle Data Provider for  .NET, Managed Driver:
Oracle官方的托管数据库访问组件,单DLL,Oracle.ManagedDataAccess.dll,直接引用即可,用法及相关文档:http://www.oracle.com/technetwork/issue-archive/2014/14-mar/o24odp-2147205.html
2:Oracle Data Access Components
同样是Oracle官方提供的数据库访问组件,为非托管的,但Oracle提供了.net的Wrap Dll,也就是Oracle.DataAccess.dll,这个组件本来是需要安装的,但也可以通过
一定处理,弄成免安装直接使用的,方法见:http://blog.csdn.net/rrrrssss00/article/details/7178515
3:DataDirect ODBC drivers from Oracle
第三方的托管数据库访问组件,也就是大名鼎鼎的DDTek.Oracle.dll,免安装,直接使用,非常方便,使用方法:http://blog.csdn.net/rrrrssss00/article/details/5757301
对比1:获取方便性
前两种为Oracle官方提供,均为免费下载,网址为http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html,ODAC的包里既有托管,也有非托管
第三种,DDTek为商业软件,需要购买,也可以免费试用(网上也有破解)
总结:1等于2优于3  (使用破解的话就都一样了。。。)
对比2:使用便利性
第一种:单DLL,直接引用即可
第二种:参考上面的用法文章,需要从ODAC包里不同子压缩包中找到多个依赖的DLL文件,放在一起方可使用,略有不便,而且不同版本的ODAC,依赖DLL的数量和各DLL文件的位置还不一样。。。。
第三种:单DLL文件加许可文件,也是直接引用
总结:1等于3优于2(ODAC找起DLL来确实麻烦)
对比3:功能性
第一种,ODP Managed Driver,有一部分功能在这个托管版本里并没有实现,详细参考:http://www.oracle.com/technetwork/database/windows/downloads/odpmbetainstall-1696475.html#Known%20Issues 
这个网页的最后两个表格,比如BulkCopy和CustomType之类的都是不支持的
第二种,ODAC,这个功能是最多的
第三种,DDTek,这个也是全托管,有一部分功能限制,但是比第一种的功能略多一些,比如BulkCopy这个是支持的
总结:2优于3优于1

.net(C#)访问Oracle数据库的几种免安装组件的对比的更多相关文章

  1. .net(C#)访问Oracle数据库的几种免安装组件的对比(转)

    原文地址 [内容为转载,个人推荐还是用官方的组件,推荐使用 Oracle.DataAccess.dll ] .net(C#)编程过程中,使用到了以下三种免安装的Oracle访问组件,能够不安装Orac ...

  2. 【方法】如何限定IP访问Oracle数据库

    [方法]如何限定IP访问Oracle数据库 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知 ...

  3. sqlplus命令行登录oracle数据库的N种方法盘点

    欢迎访问我的个人博客IT废柴,本文永久链接移至:sqlplus命令行登录oracle数据库的N种方法盘点 sqlplus有几种登陆方式Oracle数据库, 比如: 1.以操作系统权限认证的oracle ...

  4. .Net 中读写Oracle数据库常用两种方式

    .net中连接Oracle 的两种方式:OracleClient,OleDb转载 2015年04月24日 00:00:24 10820.Net 中读写Oracle数据库常用两种方式:OracleCli ...

  5. plsql 连接oracle数据库的2种方式

      plsql 连接oracle数据库的2种方式 CreationTime--2018年8月10日09点50分 Author:Marydon 方式一:配置tnsnames.ora 该文件在instan ...

  6. C++使用ocilib访问oracle数据库

    引用: http://blog.csdn.net/u011311985/article/details/51221898 测试程序我放到 http://download.csdn.NET/detail ...

  7. ADO访问Oracle数据库,连接异常(Unknown error 0x800a0e7a)

    ADO访问Oracle数据库,连接异常(Unknown error 0x800a0e7a) 代码如下:执行Open过程中出现异常,信息为Unknown error 0x800a0e7a  C++ Co ...

  8. Oracle数据库的三种验证机制

    关于超级管理员登陆不需要密码因为: 数据库的三种验证机制: 操作系统验证(具有sysdba和sysopera的用户) 密码文件验证(具有sysdba和sysopera的用户) 数据库验证(普通用户) ...

  9. 在开发框架中扩展微软企业库,支持使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库

    在前面随笔<在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容3 ...

随机推荐

  1. C# 通过代理获取url数据

    public static string doPost(string Url, byte[] postData, SinaCookie bCookie, String encodingFormat, ...

  2. Linux下调试程序方法

    您可以用各种方法来监控运行着的用户空间程序:可以为其运行调试器并单步调试该程序,添加打印语句,或者添加工具来分析程序.本文描述了几种可以用来调试在 Linux 上运行的程序的方法.我们将回顾四种调试问 ...

  3. iOS9系统分享失败问题解决

    因为iOS9系统需要设置打开QQ和微信的白名单,如果出现无法分享或者直接提示分享失败,试一下在infoPlist中添加以下白名单 http://wiki.mob.com/ios9-对sharesdk的 ...

  4. Android开发学习---如何写数据到外部存储设备(sd卡),Environment.getExternalStorageDirectory,怎么获取sd卡的大小?

    本文主要介绍如何写数据到sd卡,这里主要到的技术是Environment中的方法. 1. 2.实现代码: /datasave/src/com/amos/datasave/savePasswordSer ...

  5. windows下远程桌面连接centos

    最近,由于项目需要,必须要在centos下进行操作.习惯了图形界面的我,通过黑框框来远程操作服务器,着实让人难受.但是,windows自带的远程桌面工具貌似不能直接连centos.所以,只能借助其他工 ...

  6. My安卓知识6--关于把项目从androidstudio工程转成eclipse工程并导成jar包

    是这样,我在我的android项目中想实现zxing也就是二维码的一些功能,但是需要的一个源码工程是androidstudio工程,想把这个工程转成eclipse工程并导成jar包在我的项目中使用. ...

  7. Cordova系列(一)

    1.安装 这里推荐用npm安装cordova,至于npm的安装,网上有很多的.打开命令行,输入 npm install -g cordova 这里就安装了好了最新版的cordova,虽然绝大多数会成功 ...

  8. 《Linux多线程服务端编程:使用muduo C++网络库》上市半年重印两次,总印数达到了9000册

    <Linux多线程服务端编程:使用muduo C++网络库>这本书自今年一月上市以来,半年之内已经重印两次(加上首印,一共是三次印刷),总印数达到了9000册,这在技术书里已经算是相当不错 ...

  9. IOS 本地推送 IOS10.0以上 static的作用 const的作用

    //需要在AppDelegate里面启动APP的函数 加上 UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNot ...

  10. Windows XP发行12周年,我正步入中年,你已垂暮

    2001年10月25日,Windows XP正式全球上市!作为Windows 2000的升级版本,XP拥有大量新的功能:新的用户界面.防火墙整合等,这些都大大的增强了系统的易用性和安全性.而微软将于2 ...