之前的博客介绍了ODBC和JDBC。这次简单的介绍一下OLE DB。ODBC的总结不知道是没贴到博客上还是不在这个博客上,我再找找,没有的话我再补充到时候。好了。開始吧。

回想

之前呢介绍过了ODBC和JDBC主要的结构是一样的,也就是本质一致。都是是訪问数据库的一套统一的接口,是一系列的规范和对数据库訪问的API。差别仅仅是在于ODBC是由C++语言实现的而JDBC是有Java实现的,之所以出现JDBC是由于Java程序和C++的ODBC之间的通信不便。

能够说ODBC和JDBC二者之间的关系是横向的。而OLE DB相对与ODBC的关系则是纵向的。为什么这么说呢?

OLE DB之历史

为什么说OLE DB((Object Linking and Embedding, Database)和ODBC之间的关系是纵向的呢。

这还是要从ODBC说起,ODBC是一套接口。可是ODBC仅仅支持訪问关系型数据库,既二维数据数据库。可是随着技术的发展显然我们须要面对的不在仅仅是关系型的数据库。还须要訪问不能使用SQL訪问的非关系行和层次结构行数据,包含邮件系统中的数据、Web上的文本、文件夹服务等形式。因此。从数据源的角度来说OLE
DB 和ODBC的关系例如以下图:

基于COM标准

ODBC是基于API的实现,而OLE DB则是基于COM标准。

也就是说在实现上ODBC必须支持差点儿全部的DBMS特征和功能,而OLE DB则能够部分实现。

这里不太理解能够查查什么事COM标准。

OLE DB构成

    OLE DB包含几个逻辑组件,由于其基于COM标准,所以组件之间相互独立,仅保持通信。

数据提供者(Data Provider):凡是通过OLE DB将数据提供出来的。即数据库提供者。数据提供者的概念能够和ODBC中的驱动程序对照理解。

数据消费者(Data Consumer):使用了OLE DB提供的数据的程序或组件。

服务组件(Service Component):运行数据提供者和数据消费者之间的数据传递工作。

    业务组件(Bussiness Component):利用服务组件专门完毕某种特定业务信息处理。是能够重用的功能组件。

OLE DB和ADO

之前的博客绝对是介绍过ADO了,这里ADO是OLE DB的进一步封装,在程序中的关系例如以下:

总的来说:OLE DB是ODBC的扩充。它基于COM标准,具有比ODBC更高的灵活性。只是终于也还是链接数据库的一套标准。仅仅只是相对与ODBC来说更底层。

数据库连接技术之OLE DB的更多相关文章

  1. 数据库访问接口(ODBC、OLE DB、ADO)

    最近在学C#的数据库编程,对于数据库接口技术这块的知识一直比较模糊,网上查了不少资料,看了几天还是朦朦胧胧的,只能做些笔记再研究了. 我们都知道,“数据库”是指一组相关信息的集合,最早的计算机应用之一 ...

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

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

  3. ODBC、OLE DB、 ADO的区别

    转自:http://blog.csdn.net/yinjingjing198808/article/details/7665577 一.ODBC ODBC的由来 1992年Microsoft和Syba ...

  4. 【转载】OLE DB, ADO, ODBC关系与区别

    原文:OLE DB, ADO, ODBC关系与区别 OLE DB, ADO, ODBC 一. ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(W ...

  5. 【转】ODBC、OLE DB、 ADO的区别

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

  6. 用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败/OLE DB 错误: OLE DB 或 ODBC 错误 :

    用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败/OLE DB 错误: OLE DB 或 ODBC 错误 : 2012-2-23 上午 ,弄SAAS时,发现在生成多维数据集 ...

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

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

  8. Java数据库连接技术——JDBC

    大家好,今天我们学习了Java如何连接数据库.之前学过.net语言的数据库操作,感觉就是一通百通,大同小异. JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力. JDBC API ...

  9. OLE DB Command transformation 用法

    OLE DB Command transformation component 能够引用参数,逐行调用sqlcommand,This transformation is typically used ...

随机推荐

  1. HDU 1556 Color the Ball 线段树 题解

    本题使用线段树自然能够,由于区间的问题. 这里比較难想的就是: 1 最后更新须要查询全部叶子节点的值,故此须要使用O(nlgn)时间效率更新全部点. 2 截取区间不能有半点差错.否则答案错误. 这两点 ...

  2. Java使用HttpURLConnection上传文件

    从普通Web页面上传文件非常easy.仅仅须要在form标签叫上enctype="multipart/form-data"就可以,剩余工作便都交给浏览器去完毕数据收集并发送Http ...

  3. iOS基本控制-UINavigationController 传统的价值观,代理传统价值观,正向传统价值观,反传统的价值观

    /*        程序过程:  1.创建一个根视图,一个二级视图  2,根视图NavigationItem.title = Root 二级视图NavigationItem.title = Secon ...

  4. Appium 出现 > error: com.test/.activity1 never started. Current: com.test/.activity2

    在apium 运行的时候,会出现提示 activity 没有启动,当前是 activity 出现原因: 出现这种情况是因为 launch activity 再启动 app 之后 无法找到,变成了app ...

  5. C++ delete 和 delete []

    C++ delete 和 delete [] 简单结论: new delete new [] delete []   文章 : 对 delete [] 的声明 void operator delete ...

  6. STM8S 串口应用 UART2 STM8S105

    //少说话.多做事,下面是我验证过没有问题的串口发送接受数据 //使用MCU stm8s105c6 UART2 //初始化时调用: GPIO_DeInit(GPIOD); /* Configure P ...

  7. typedef和define具体的具体差别

      1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,仅仅有在编译已被展开的源程序时才会发现可能的错误并报错.比如: #define PI 3. ...

  8. oracle查询语句中case when的使用

    case when语句语法如下: case when  表达式  then valueA  else valueB  end; 具体使用如下: select    (case when a.colum ...

  9. hdu2112 HDU Today

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目分类:SPFA算法+map容器 错误点:红色标记部分 代码: #include<bit ...

  10. 参数传递方法(Delphi1.0与win16API使用pascal方法,即从左到右)

    参数传递方法李维的InsideVCL<第一章>中提到Windows定义的回调函数typedef LRESULT (CALLBACK*WNDPROC)(HWND,UNIT,WPARAM,LP ...