知道.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。我们通过这些对象建立对数据库的连接,我们仅仅需编写訪问数据库的代码。而并不用关系数据库是怎样实现的。

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



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

最新文章

  1. Spring:ApplicationContext (2)
  2. 解决eclipse-helios中Errors running builder JavaScript Validator的问题(转)
  3. hadoop小试
  4. 使用nginx做负载均衡的session共享问题
  5. sublime删除安装的插件
  6. [Hibernate] - Criteria Select
  7. [转载] iOS开发分辨率那点事
  8. UpdataData
  9. javascript和css浏览器兼容性总结
  10. UTC、GTC时间和本地时间
  11. uboot各种目录下的文件作用
  12. MySQL 数据库的创建&修改
  13. vue 之webpack打包工具的使用
  14. Cookie详解整理
  15. Python 爬虫: 抓取花瓣网图片
  16. 帆软:不使用 __parameters__ 传参,问题。
  17. 产品密钥无法激活成功,最后使用visio2013激活软件激活成功。
  18. Laravel安装教程
  19. PAT B1029 旧键盘 (20 分)
  20. Python: ValueError: too many values to unpack

热门文章

  1. [Node.js] Testing ES6 Promises in Node.js using Mocha and Chai
  2. 百度地图 layer弹出地图 获取坐标
  3. Spring Boot+Mybatis+Pagehelper分页
  4. HTTP请求头与响应头
  5. 手机浏览器 input 输入框 数字
  6. ITFriend创业阶段的服务器环境搭建手册
  7. ReentrantLock Condition await signal 专题
  8. Android自定义控件View(三)组合控件
  9. Wpf的布局舍入属性(可以解决软件字体模糊的问题)
  10. java中unicode utf-8以及汉字之间的转换工具类