ODBC, OLEDB, ADO, ADO.NET
在SSIS中,选择Connction Manager时,有很多的类型。其中会发现如下4个连接类型ODBC, OLEDB, ADO, ADO.NET。这4个东东到底是什么,他们有什么关联,什么区别,如何选择?
本文就他们的演化来解释这4个东东…
演变历史:
史前 => ODBC => OLEDB => ADO => ADO.NET
史前
最初,不同厂商的关系型数据库有着不同的调用接口(API),如SQL Server的DBLib,Oracle的OCI。那时开发人员必须使用不同的API来访问不同的数据库…
ODBC
1992年,为了解决史前的这个问题,以微软为首的行业参与者一起制定了ODBC(Open Database Connectivity),ODBC几乎能搞定所有的数据库系统。
ODBC是一个使用标准C开发的接口,用于访问数据库系统(DBMS)。ODBC设计旨在让它能独立于数据库系统和操作系统,不论使用何种数据库,应用程序都可以通过ODBC来进行数据访问。
不同的厂商为ODBC提供了各自的驱动,当需要更改数据库时,只需要更改驱动即可。
DAO
1992年底,DAO1.0发布。DAO(Data Access Object)数据访问对象。DAO可用于访问JET Database Engine数据库(Microsoft Access)和访问所有支持ODBC的数据库。最开始用于支持Microsoft Access。最终版本为DAO3.6,在64位操作系统上和2013的Microsoft Access中已经不再支持。
RDO
1995年,Microsoft发布了RDO(Remote Data Object)远程数据对象,最开始用于Windows 95上的VB应用程序。RDO以ODBC为基础,依赖ODBC API、选定的ODBC驱动程序以及后段数据库引擎实现了大部分的功能。包含了数据库连接、查询、存储过程、结果操作、改变提交。RDO具备基本的ODBC处理方法,所以可以直接执行大多数ODBC API函数。RDO是从DAO派生的,同DAO最大的不同在于其数据库处理模式。DAO是针对Records和Fields,而RDO是按照Rows和Columns来处理。也就是说DAO是ISAM模式,RDO是关系模式。此外DAO是访问Access的Jet引擎 (Jet是ISAM)的接口,而RDO则是访问ODBC的接口。可见,RDO是综合了DAO/Jet、ODBC等优点。RDO最终版本为2.0
OLEDB
1997年,Microsoft发布了OLEDB(Object Linking and Embedding, Database)对象链接嵌入数据库。OLEDB的产生号称用于取代ODBC(同时也兼容ODBC)。
OLEDB通过各种Provider与数据源发生关系(不同的数据源对应不同的Provider),除了数据库系统,OLEDB还能访问其他数据,如文本文件、电子邮件、Excel等…
Microsoft UDA(Universal Data Access通用数据访问)策略实质是数据可以存储于多种地方,通过统一的数据访问(OLEDB)可以实现各种数据源的访问。
ADO
1996年10月份,Microsoft发布了ADO(ActiveX Data Objects)活动数据对象。ADO实际上是OLEDB的一个“简化”版本。ADO Connection同时封装了OLE DB Data Source和OLE DB Seesion。ADO Command和Recordset分别封装了OLE DB的Command和Rowset。
ADO和OLEDB实际上是一个技术的两个方面。OLE DB通过COM接口提供数据的低级连接,而ADO提供一个对象模型,拥有更多的属性和方法,剪发应用程序中用OLE DB检索数据的过程。
ADO给OLE DB带来了简单性。OLE DB是面向调用的API,要使用OLE DB直接进行操作,就要按特定顺序进行许多不同的API调用。而ADO是面向对象的API,不用学习几百个API的调用,只需要了解操作几个对象即可。
Connection、Command、Error、Field、Parameter、Property、Record、Recordset、Stream
ADO.NET
2000年,微软的Microsoft .NET计划开始成形,许多的微软产品都冠上.NET的标签,ADO+也不例外,改名为ado.net并包装到.NET Framework类别库中。
ADO.NET已经成为.Net Framework基础类库的一部分,可以访问关系、非关系型数据。它是ADO技术的一个进化,现在已经被认可为一个新的产品/技术。
ODBC, OLEDB, ADO, ADO.NET的更多相关文章
- 【转载】ODBC, OLEDB, ADO, ADO.Net的演化简史
原文:ODBC, OLEDB, ADO, ADO.Net的演化简史 1.演变历史 它们是按照这个时间先后的顺序逐步出现的,史前->ODBC->OLEDB->ADO->ADO.N ...
- [转帖]ODBC、OLEDB、ADO、ADO.NET
一文详解ODBC.OLEDB.ADO.ADO.NET之间的关系 2019年01月16日 21:28:38 LoveMIss-Y 阅读数:66更多 所属专栏: 白话C#高级编程 版权声明:本文为博主 ...
- SQL那些事儿(十一)--ODBC,OLE-DB,ADO.NET区别[转]
一.ODBC ODBC的由来 1992年Microsoft和Sybase.Digital共同制定了ODBC标准接口,以单一的ODBC API来存取各种不同的数据库.随后ODBC便获得了许多数据库厂 ...
- ODBC, OLEDB, ADO, ADO.Net的演化简史
ODBC, OLEDB, ADO, ADO.Net的演化简史 Copy&Paste了一下午,终于一蹴而就此文,嘿嘿... 1.演变历史 它们是按照这个时间先后的顺序逐步出现的,史前->O ...
- ODBC、OLEDB、ADO、SQL的关系
对于一个刚接触数据库的菜鸟来说(比如我),总是搞不清SQL.ADO.OLE DB.ODBC,大脑中一片混乱,好像懂了,又好像没懂,非常的苦恼,今天下了点功夫研究了一下,贴出来,其中肯定有好多错误,希望 ...
- 数据库访问接口(ODBC,OLEDB,ADO)
数据库访问接口发展历史 ODBC历史 ODBC(Open Database Connectivity,开放数据库互连).要了解ODBC是什么,先了解一下数据库连接的相关知识.在最开始连接数据库时,由于 ...
- (4.3)ODBC/OLE DB/ADO概念与使用情况
一.ODBC ODBC的由来 1992年Microsoft和Sybase.Digital共同制定了ODBC标准接口,以单一的ODBC API来存取各种不同的数据库.随后ODBC便获得了许多数据库厂 ...
- SSIS使用OleDB和Ado.Net两种方式调用 存储过程
在使用”执行 SQL 任务“组件调用存储过程时,连接方式使用OleDB和Ado.Net稍有不同,结合图例说明一下 当我们使用OleDB时,设置的截图如下: 参数使用?来代替,Parameter Nam ...
- ODBC OLEDB
ODBC OLEDB https://www.cnblogs.com/dachuang/p/8615754.html
随机推荐
- 冒泡排序算法 :BubbleSort
java中的经典算法:冒泡排序算法 $. 可以理解成当你静止一杯可乐时,里面的CO2随着你的静止,由于不不易溶于水的性质, 且会以气泡的形式逐渐向上漂浮.越大的气泡上浮速度越快. 冒泡排序算法的原理于 ...
- 《Beginning Java 7》 - 2 - Cloning 克隆
Cloning 分两类:影子克隆 shallow cloning 深度克隆 deep cloning * 调用 clone() 需要 implments Cloneable.此函数为 protecte ...
- 洛谷P5245 【模板】多项式快速幂
题面 传送门 题解 话说现在还用数组写多项式的似乎没几个了-- \[B(x)=A^k(x)\] \[\ln B(x)=k\ln A(x)\] 求个\(\ln\),乘个\(k\),\(\exp\)回去就 ...
- linux校验时间
一. 基本方法:date -s "2018-09-02 04:23:45"clock -w 把时间写入cmos(一个RAM芯片) hwclock 查看硬件时间 hwclock ...
- easy-ui grid里的toobar按钮隐藏与显示
//隐藏第一个按钮$('div.datagrid-toolbar a').eq(0).hide();//隐藏第一条分隔线$('div.datagrid-toolbar div').eq(0).hide ...
- leetcode-812-Largest Triangle Area
题目描述: You have a list of points in the plane. Return the area of the largest triangle that can be fo ...
- Hibernate 初识
第一步: 导包:(这是我根据其他网站的介绍导入的包,可能不完善,但开发没什么问题,遇到问题再说) 当然还有mysql的jar包 第二步:进行hibernate环境配置 在classpath目录下建立h ...
- 4.1、支持向量机(SVM)
1.二分类问题 在以前的博客中,我们介绍了用于处理二分类问题的Logistic Regression算法和用于处理多分类问题的Softmax Regression算法,典型的二分类问题,如图: 对于上 ...
- 修改testng源码,添加beforeMethod和afterMethod中的日志到test中(可以不改源码,废弃)
在使用testng生成报告的时候,只会记录test方法中的日志,但是一般会在beforeMethod.beforeTest.afterMethod.afterTest中做一下数据的处理,这里面的日志没 ...
- Oracle 第三方管理工具整理
Oracle 第三方管理工具整理 1.OB(SI Object Browser) 官方网址: http://www.ctdw.com.cn说明:小软件大功能,个人最爱它的数据库导入.导出功能,一键导入 ...