一、ODBC

  • ODBC的由来

1992年Microsoft和Sybase、Digital共同制定了ODBC标准接口,以单一的ODBC API来存取各种不同的数据库。随后ODBC便获得了许多数据库厂商和Third-Party的支持而逐渐成为标准的数据存取技术。 ODBC以当时的业界标准规范X/OpenCall-LevelInterface(CLI)和ISO/IEC9075-3Call-LevelInterface(SQL/CLI)为涵盖的范围,因而支持了广阔的数据库。虽然ODBC在初期的版本中执行效率不佳,而且功能有限,因此也为人们所贬低。但是,随着Microsoft不断地改善ODBC,使ODBC的执行效率不断增加,ODBC驱动程序的功能也日渐齐全。到目前,ODBC已经是一个稳定并且执行效率良好的数据存取引擎。不过ODBC仅支持关系数据库,以及传统的数据库数据类型,并且只以C/C++语言API(API就是一些C语言的代码,是最底层的程序,在windows中就是一些.dll的文件)形式提供服务,因而无法符合日渐复杂的数据存取应用,也无法让脚本语言使用。因此Microsoft除了ODBC之外,也推出了其他的数据存取技术以满足程序员不同的需要。(注:ODBC是面向过程的语言,由C语言开发出来,不能兼容多种语言,所以开发的难度大,而且只支持有限的数据库公司,对于后来的EXCEL等根本不能支持)

  • ODBC的介绍

ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。

二、 OLE DB

  • OLE-DB的由来

随着数据源日益复杂化,现今的应用程序很可能需要从不同的数据源取得数据,加以处理,再把处理过的数据输出到另外一个数据源中。更麻烦的是这些数据源可能不是传统的关系数据库,而可能是Excel文件,Email,Internet/Intranet上的电子签名信息。Microsoft为了让应用程序能够以统一的方式存取各种不同的数 据源,在1997年提出了UniversalDataAccess(UDA)架构。UDA以COM技术为核心,协助程序员存取企业中各类不同的数据源。UDA以OLE-DB(属于操作系统层次的软件)做为技术的骨架。OLE-DB定义了统一的COM接口做为存取各类异质数据源的标准,并且封装在一组COM对象之中。藉由OLE-DB,程序员就可以使用一致的方式来存取各种数据。但仍然OLEDB是一个低层次的,利用效率不高。

  • OLE-DB的介绍

OLE DB(Object Link and embed 即对象连接与嵌入。)是微软的战略性的通向不同的数据源的低级应用程序接口。OLE DB不仅包括微软资助的标准数据接口开放数据库连通性(ODBC)的结构化问题语言(SQL)能力,还具有面向其他非SQL数据类型的通路。 作为微软的组件对象模型(COM)的一种设计,OLE DB是一组读写数据的方法(在过去可能被称为渠道)。OLD DB中的对象主要包括数据源对象、阶段对象、命令对象和行组对象。使用OLE DB的应用程序会用到如下的请求序列:初始化OLE 连接到数据源 发出命令 处理结果 释放数据源对象并停止初始化OLE
OLE DB标准中定义的新概念----OLE DB将传统的数据库系统划分为多个逻辑组件,这些组件之间相对独立又相互通信。这种组件模型中的各个部分被冠以不同的名称:数据提供者(Data Provider)。 提供数据存储的软件组件,小到普通的文本文件、大到主机上的复杂数据库,或者电子邮件存储,都是数据提供者的例子。有的文档把这些软件组件的开发商也称为数据提供者。
我们要开启如Access 数据库中的数据,必须用ADO.NET透过OLE DB 来开启。ADO.NET 利用OLE DB 来取得数据,这是因为OLE DB 了解如何和许多种数据源作沟通,所以对OLE DB有相当程度的了解是很重要的。

  • OLE DB 和ODBC的区别

由于OLEDB和ODBC 标准都是为了提供统一的访问数据接口,所以曾经有人疑惑:OLE DB 是不是替代ODBC 的新标准?答案是否定的。实际上,ODBC 标准的对象是基于SQL 的数据源(SQL-Based Data Source),而OLE DB 的对象则是范围更为广泛的任何数据存储。从这个意义上说,符合ODBC 标准的数据源是符合OLE DB 标准的数据存储的子集。
三、 ADO

  • ADO的由来

虽然OLE-DB允许程序员存取各类数据,是一个非常良好的架构,但是由于OLE-DB太底层化,而且在使用上非常复杂,需要程序员拥有高超的技巧,因此只有少数的程序员才有办法使用OLE-DB。这让OLE-DB无法广为流行。为了解决这个问题,并且让VB和脚本语言也能够藉由OLE-DB存取各种数据源,Microsoft同样以COM技术封装OLE-DB为ADO对象,(这一步是很重要的,实现了多种程序可以互相调,并且可以开发的语言也丰富了)简化了程序员数据存取的工作。由于  ADO成功地封装了OLE-DB大部分的功能,并且大量简化了数据存取工作,因此 ADO也逐渐被愈来愈多的程序员所接受。

  • ADO的介绍

微软公司的ADO (ActiveX Data Objects)是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象来执行。

ADO被设计来继承微软早期的数据访问对象层,包括RDO (Remote DataObjects)和DAO(Data Access Objects)。ADO在1996年冬被发布。

ADO包括了6个类:Connection,Command,Recordset,Errors,Parameters,Fields

  • 说说自己的理解

说通俗点 OLE DB和ODBC都是最底层的东西,而ADO对象给我们提供了一个“可视化”,和应用层直接交互的组件,我们不用过多的关注OLEDB的内部机制,只需要了解ADO通过OLE DB创建数据源的几种方法即可,就可以通过ADO轻松地获取数据源。可以说ADO是应用程序和数据底层的一个中间层,ADO对象通过OLE DB间接取得数据库中的数据。OLE DB只是提供了通向各种数据库的一个通用接口,简单的可以用下图来表示:

出处:http://blog.csdn.net/yinjingjing198808/article/details/7665577

转载于:https://www.cnblogs.com/sthinker/p/5915290.html

ODBC、OLE DB、 ADO的区别相关推荐

  1. 处理 ODBC, OLE DB, 和 SQL Server .NET Provider 中的异常

    经常有使用  ODBC, OLE DB, 或者  SQL Server  .NET Provider 的程序员询问,是否有一个处理过程中的完整的异常处理列表可以参考.这里可以提供一些参考帮助. 异常用 ...

  2. ADO、DAO、ODBC、RAO和OLE DB等概念及异同

    一:概念介绍 1.ADO ADO 并不是自动和您现存的数据访问应用程序代码兼容的.当 ADO 封装 DAO 和 RDO 的功能性的时候,您必须将许多语言要素转换为 ADO 语法.在某些情况下,这将意味 ...

  3. OLE DB 是什么?

    OLE DB(OLEDB)是微软的战略性的通向不同的数据源的低级应用程序接口.OLE DB不仅包括微软资助的标准数据接口开放数据库连通性(ODBC)的结构化查询语言(SQL)能力,还具有面向其他非SQ ...

  4. JDBC、ODBC、OLE DB、ADO、ADOMD区别与联系

    ODBC: (Open Database Connectivity,开放数据库互连),它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口).这些API利用SQL来完成其大部分任务 ...

  5. ssms 连接 ssis_SSIS连接管理器:OLE DB,ODBC,ADO.NET

    ssms 连接 ssis In this article, I will first give an overview of the OLE DB, ODBC, and ADO.NET SSIS co ...

  6. OLE DB , ODBC , ADO 知识了解

    ADO (ActiveX Data Objects) . ADO 是 VB6 推荐操作数据库的方式 . 提供了编程语言和统一数据访问方式OLE DB 的一个中间层. 包括了六个类: Connectio ...

  7. mysql的ole db 访问接口msdasql的数据源对象_数据库访问接口(ODBC,OLEDB,ADO)

    目录 数据库访问接口发展历史 ODBC历史 ODBC(Open Database Connectivity,开放数据库互连).要了解ODBC是什么,先了解一下数据库连接的相关知识.在最开始连接数据库时 ...

  8. ODBC、OLEDB、ADO的区别和联系

    ODBC 是一种底层的访问技术,因此,ODBC API可以是客户应用程序能从底层设置和控制数据库,完成一些高级数据库技术无法完成的功能:但不足之处由于ODBC只能用于关系型数据库,使得利用ODBC很难 ...

  9. SQL那些事儿(十一)--ODBC,OLE-DB,ADO.NET区别

    一.ODBC ODBC的由来 1992年Microsoft和Sybase.Digital共同制定了ODBC标准接口,以单一的ODBC API来存取各种不同的数据库.随后ODBC便获得了许多数据库厂商和 ...

  10. 一致的数据访问技术ADO/OLE DB

    Microsoft新近推出的UDA(Universal Data Access,一致数据访 问技术)为关系型或非关系型数据访问提供了一致的访问接口,为企业 级Intranet应用多层软件结构提供了数据 ...

最新文章

  1. TensorFlow实现多层感知机函数逼近
  2. php更新用户数据为空,php – Instagram实时更新标签 – 获取空数据,为什么?
  3. .NET简谈组件程序设计之(详解NetRemoting结构)
  4. android edittext输入邮箱,[Android教程]EditText怎样限制用户的输入?数字/字母/邮箱
  5. Windows Pe 第三章 PE头文件(中)
  6. struts2中result的type跳转类型总结
  7. MySQL 5.7 新特性详解
  8. 【SSL】java keytool工具创建自己的(localhost)(JKS)证书库
  9. UItableViewCell滑动删除时,调整cell子视图的位置大小
  10. Bootstrap 如何使用字体图标
  11. 互联网架构“高并发”
  12. linux校园网自动登录命令,东北大学校园网登录登出shell脚本
  13. 色温CCT与色坐标xy互换
  14. 李涛专家主讲PS高手之路经典视频教程(1G打包下载)
  15. 电脑计算机丢失msvcp140.dll,电脑丢失msvcp140.dll什么意思
  16. centos7上部署php7遇到的坑
  17. 产品读书《人人都是产品经理 1.0》
  18. u盘插电脑计算机卡了,U盘连接电脑非常卡的解决方法-电脑自学网
  19. 操作系统课程设计-二级文件系统,Linux平台版本,c语言
  20. 【软件设计】如何画时序图

热门文章

  1. 华为笔试题:进制转换
  2. 批处理Bat教程-第一章:前言
  3. 关于IplImage的widthstep
  4. lg按键手机java游戏_03 对于j2me(JAVA手机)的怀念——jar游戏软件合集(824MB)
  5. 传诺基亚将和微软合作生产WP7手机
  6. window字体安装方法,fonts安装方法
  7. Mac如何取消远程控制?
  8. hadoop保姆级安装教程
  9. 即时网络通讯系统的设计与实现(QQ)
  10. 苹果手机绕id软件_苹果手机如何安装LINE社交软件