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
随机推荐
- bitcoin script
P2PK P2PKH,MS,P2SH,OP_RETURN 等的区别 1.P2PK pay_to_public_key pubkey script: <pubkey> OP_CHECKSIG ...
- PXE-cobbler 无人值守装机
Cobbler PXE 自动安装系统(CentOS-7.2) 第一步:系统环境准备 1.查看系统版本与内核 2.关闭防火墙 3.关闭selinux 第二步:安装cobbler 与环境相关组件 1.下 ...
- Java中获取运行代码的类名、方法名
以下是案例,已运行通过 package com.hdys; /* * 1.获取当前运行代码的类名,方法名,主要是通过java.lang.StackTraceElement类 * * 2. * [1]获 ...
- day04.2-迭代器
1. 迭代器协议: 对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代(只能往后走,不能往前退). 2. 可迭代对象:实现了迭代器 ...
- jquery源码解析:jQuery原型方法init的详解
先来了解几个jQuery方法: <li></li> <li></li> <li></li> $("li") ...
- supervisor 使用
cat /etc/supervisord.conf https://www.cnblogs.com/yuzhoushenqi/p/6825204.html http://127.0.0.1:1001/ ...
- js中一切都是对象
<script> function cat(){} var cat = new cat(); console.log(cat.constructor) console.log(typeof ...
- selenium(python)登录时账号密码错误提示语
selenium(python)登录时账号密码错误提示语的获取 可以用text
- ubuntu安装TFTP
参考: http://wenku.baidu.com/view/76e70cd702d276a201292e2f.html?re=view http://wenku.baidu.com/view/ce ...
- 基于两阶段提交的分布式事务实现(UP-2PC)
引言:分布式事务是分布式数据库的基础性功能,在2017年上海MySQL嘉年华(IMG)和中国数据库大会(DTCC2018)中作者都对银联UPSQL Proxy的分布式事务做了简要介绍,受限于交流形式难 ...