知道.net影片后,相关数据库的一些概念连接的内侧部分是很无语。互联网是非常多的相关信息,外,基本上内容都神一样的一致。

如今。我就通过结合看到的一些资料再加上自己的理解试图去解释一下,有不正确的。还请大家不吝赐教!

看一张图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3l5MTMw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

看图中右半部分。我们先来了解一下ODBC这个概念。

1.ODBC:

要了解ODBC是什么。先了解一下数据库连接的相关知识。

事实上,在最開始连接数据库时。因为数据库种类繁多,各种数据库连接有不同的需求,这个时期,数据库连接主要依靠各种API函数来进行连接。

而ODBC就是将这些API函数封装起来形成统一的接口如上图所看到的(ODBC上方有一个唯一的接口)。图中所看到的的ODBC层代表ODBC中各种数据库的驱动器(driver),当SQL语句进入接口后。驱动器管理程序通过辨别将它们分别相应的进入各自的驱动器(driver),由驱动器来讲SQL语句送入各种不同的数据库。

不知道上面这样写,有没有把这个ODBC给介绍的明确一点儿,学习要生活化。这样才easy理解。我来举个样例。

我们把ODBC假想成一辆汽车,汽车中有一名司机(driver),把以下的各种数据库如果程不同的工厂。如果司机接收到接口中的命令(SQL语句)——将汽车上的货物运到某个工厂中。

那么司机(driver)会依据命令中所指明的货物的类型,自己去辨别究竟应该进入哪个工厂才干完毕任务。

大家看,上面这个样例中接收的命令就好像是数据库中的SQL语句。那么司机就好像是驱动器(driver),而不同的工厂就好像是不同种类的数据库。这样理解,有没有简单一点儿呢?

2.OLEDB与ODBC

好了,再来看一下OLEDB,在上面的样例中我们理解了ODBC,还有我们必须知道,ODBC负责的仅仅是结构化数据库的连接。

这样我们就会比較easy理解OLEDB。

OLEDB事实上和ODBC类似,都是负责数据库连接的低级接口。而OLEDB不仅支持结构化数据库如SQL server,Oracel Access等,并且还支持非结构化数据源的连接如EXCEL等。

OLEDB(对象连接和嵌入数据库),是一组对象的集合。一种读写数据的方法。在使用OLEDB时,使用步骤为:初始化OLE、连接到数据源、发出命令、处理结果、释放数据源对象并停止初始化OLE。

他能够通过ODBC连接到数据库。也能够之间连接到数据库。当不通过ODBC时,这时在这当中并不涉及到驱动器的成分,因此,此时的数据库连接速度会更快。同一时候,我们能够知道,仅仅要支持ODBC的数据源是一定能够支持OLEDB的。

可是反过来则不一定。

3.ADO

通过图中。我们看到ADO是位于应用程序和OLEDB之间的。它属于数据库连接中的高层接口。

是一个用于存取数据源的COM组件。

它提供了编程语言和统一数据訪问方式OLE DB的一个中间层。同意开发者编写訪问数据的代码而不用关心数据库是怎样实现的,而仅仅用关心到数据库的连接。

訪问数据库的时候,关于SQL的知识不是必要的,可是特定数据库支持的SQL命令仍能够通过ADO中的命令对象来运行。

怎样理解上面这个概念呢?事实上我们能够联系我们学到的关于ADO控件的相关知识。在原来学习VB的时候,我们假设想要连接到数据库的话,必须载入一个引用空间。里面含有connection,command,recordset等一些相关数据库连接的对象,事实上这个引用就是ADO。我们通过这些对象建立对数据库的连接,我们仅仅需编写訪问数据库的代码。而并不用关系数据库是怎样实现的。

以上是我结合上图和学过的知识对这三个概念的理解。非常多不透彻的地方。请大家共同交流。



版权声明:本文博客原创文章。博客,未经同意,不得转载。

ODBC、OLEDB和ADO关系的更多相关文章

  1. ODBC、OLEDB、ADO、SQL的关系

    对于一个刚接触数据库的菜鸟来说(比如我),总是搞不清SQL.ADO.OLE DB.ODBC,大脑中一片混乱,好像懂了,又好像没懂,非常的苦恼,今天下了点功夫研究了一下,贴出来,其中肯定有好多错误,希望 ...

  2. 【转载】ODBC, OLEDB, ADO, ADO.Net的演化简史

    原文:ODBC, OLEDB, ADO, ADO.Net的演化简史 1.演变历史 它们是按照这个时间先后的顺序逐步出现的,史前->ODBC->OLEDB->ADO->ADO.N ...

  3. [转帖]ODBC、OLEDB、ADO、ADO.NET

    一文详解ODBC.OLEDB.ADO.ADO.NET之间的关系 2019年01月16日 21:28:38 LoveMIss-Y 阅读数:66更多 所属专栏: 白话C#高级编程   版权声明:本文为博主 ...

  4. ODBC, OLEDB, ADO, ADO.Net的演化简史

    ODBC, OLEDB, ADO, ADO.Net的演化简史 Copy&Paste了一下午,终于一蹴而就此文,嘿嘿... 1.演变历史 它们是按照这个时间先后的顺序逐步出现的,史前->O ...

  5. ODBC, OLEDB, ADO, ADO.NET

    在SSIS中,选择Connction Manager时,有很多的类型.其中会发现如下4个连接类型ODBC, OLEDB, ADO, ADO.NET.这4个东东到底是什么,他们有什么关联,什么区别,如何 ...

  6. 数据库访问接口(ODBC,OLEDB,ADO)

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

  7. SQL那些事儿(十一)--ODBC,OLE-DB,ADO.NET区别[转]

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

  8. (4.3)ODBC/OLE DB/ADO概念与使用情况

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

  9. SSIS使用OleDB和Ado.Net两种方式调用 存储过程

    在使用”执行 SQL 任务“组件调用存储过程时,连接方式使用OleDB和Ado.Net稍有不同,结合图例说明一下 当我们使用OleDB时,设置的截图如下: 参数使用?来代替,Parameter Nam ...

随机推荐

  1. VS2010下配置Opencv2.4.3 .

    VS2008下OpenCV的配置过程在OpenCV论坛上写的很详细,具体过程可以见如下链接http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B ...

  2. [React Native] Disable and Ignore Yellow Box Warnings in React Native

    Yellow box warnings in react native can be intrusive. We will use console.disableYellowBox to disabl ...

  3. Jedis 源代码阅读一 —— Jedis

    这是jedis 源代码文件夹,我们接下来选择性阅读重要的接口以及实现. └─redis └─clients ├─jedis │ │ BinaryClient.java │ │ BinaryJedis. ...

  4. OpenStack 之 Nova Compute 的代码结构图

    nova-compute 的代码结构图 如上图所看到的, 类图中最重要的三个Category Manager: 核心的业务类.提供实际的业务操作.比如启动虚拟机等等. Service: 每一个serv ...

  5. Oracle null 处理

    null first null last 解决啦-

  6. AE控制图层中要素可见状态的几种方法

    转自原文 AE控制图层中要素可见状态的几种方法 工作中常有这样的需求,一个作业图层由几个作业员来操作,我们要 控制每一个作业员只能看到他负责的区域.作业员的可见区域控制有时候是按空间区域划分,有时候是 ...

  7. Watchdog机制概述

    1. Watchdog初始 Watchdog的中文的“看门狗”,有保护的意思.最早引入Watchdog是在单片机系统中,由于单片机的工作环境容易受到外界磁场的干扰,导致程序“跑飞”,造成整个系统无法正 ...

  8. Eclipse Che开发Spring Web应用(入门) (二)

    在上篇博客中我们介绍了如何安装Eclipse Che这种浏览器SDK之后,收到了许多开发者的提问,为了方便初学者开发Java web应用,笔者又一步步实践了spring web开发(demo)过程,欢 ...

  9. C++程序员经常问的11个问题

    下面的这些要点是对所有的C++程序员都适用的.我之所以说它们是最重要的,是因为这些要点中提到的是你通常在C++书中或网站上无法找到的.如:指向成员的指针,这是许多资料中都不愿提到的地方,也是经常出错的 ...

  10. spark action之countbykey

    java public class CountByKeyDemo { private static SparkConf conf = new SparkConf().setMaster("l ...