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. 关于一个程序的编译过程 zkjg面试

    http://blog.csdn.net/gengyichao/article/details/6544266 一 以下是C程序一般的编译过程: 从图中看到: 将编写的一个c程序(源代码 )转换成可以 ...

  2. 【循序渐进MVC】第一回——一物多用Project.json依赖关系之dependencies节点

    Project.json统一了ASP.NET vNext之前版本的packages.config.NuGet 配置(nuspec)以及项目文件(csprojs):并集成在Project.json中. ...

  3. pod导入融云路径报错解决办法

    build Settings中搜索sear Search Patchs下点开Library Search Paths 将$(inherited)"$(SRCROOT)/Pods"分 ...

  4. javascript json转为 go struct 小工具代码

    /** * Created by cdpmac on 15/10/20. */ var topname="Ap"; var jdata={ "item": { ...

  5. 查看应用程序使用的所有dll

    VS2008命令提示符下: >dumpbin.exe   /dependents  <文件路径+文件名> □

  6. cocoapods specs 镜像

    在使用cocoapods 进行update 或者 install的时候 每次回去更新获取的pod specs,每次速度都不是很理想,博主最近对github上的specs仓库进行了镜像,分别在gitca ...

  7. SQL关于limit的用法

    SELECT * FROM table  LIMIT [offset,] rows | rows OFFSET offset    在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时 ...

  8. 《CODE》读后笔记——第1~13章

    1.电筒密谈 Morse code表 文中提到"英语词汇就是一种编码".这句话仿佛有一种哲学思想在里面,万物皆可以以任何形式编码,只是编码的方式和途径不同.有些编码简单易懂易于接受 ...

  9. text-shadow文字阴影属性用法

    text-shadow:offset-x:阴影水平移动,负值时向左偏移 text-shadow:offset-y:阴影垂直移动,负值时向上移动 text-shadow:radio-bluer:阴影到实 ...

  10. PBX 评测二

    //由于诸事繁多,结果评测一拖再拖. 博客园的优化还行啊,PBX220搜索, 第一页,第四个就是上一篇的评测文章. 配置没有什么说的(按照说明/还有这篇无线迷你IPPBX-PBX220). 以下是在公 ...