Heim  >  Artikel  >  Datenbank  >  对ADO,DAO,RDO,OLE DB,ODBC的基本认识

对ADO,DAO,RDO,OLE DB,ODBC的基本认识

WBOY
WBOYOriginal
2016-06-07 15:31:341207Durchsuche

DAO (Data Access Objects) 定义: DAO( 数据访问对象 )是一种 应用程序编程接口 ( API ),存在于 微软 的 Visual Basic 中,它允许程序员请求对 微软 的 Access 数据库 的访问。 DAO 对象封闭了 Access 的 Jet 函数。通过 Jet 函数,它还可以访问其他的

DAO (Data Access Objects)

定义:DAO(数据访问对象)是一种应用程序编程接口API),存在于微软Visual Basic中,它允许程序员请求对微软Access数据库的访问。DAO对象封闭了AccessJet函数。通过Jet函数,它还可以访问其他的结构化查询语言SQL数据库

知识点:

1DAO最早是给Microsoft Access 所使用,现在已经支持其它数据库

2DAO 最适用于单系统应用程序或在小范围本地分布使用。(所以如果数据库Access数据库且是本地使用的话,建议使用这种访问方式---应用的专一性

3、在VB6.0以前的版本中,使用Data控件创建DAO对象访问和操作数据库

4DAO (Data Access Objects) 数据访问对象是第一个面向对象的接口

5DAO 提供了一种通过程序代码创建和操纵数据库的机制。最大特点是对MICROSOFT JET数据库的操作很方便,而且是操作JET数据库时性能最好的技术接口之一。并且它并不只能用于访问

我的理解:DAO是接口,连接数据库的接口,应用程序通过Data控件创建DAO对象访问和操作数据库

 

RDO (Remote Data Objects)

定义:RDO(远程数据对象 微软的一个应用程序接口 (application program interface, API) ,让写Windows应用程序的程序师能够进入微软和其他的数据库供给者的数据库。然后,程序中RDO 陈述使用微软的底层数据存取对象 (DAO) 来实际进入数据库 数据库供给者写入DAO接口。

知识点:

1、RDO(Remote Data Objects)远程数据对象是一个到ODBC的、面向对象的数据访问接口,它同易于使用的DAO style组合在一起,提供了一个接口,形式上展示出所有ODBC的底层功能和灵活性。尽管RDO在很好地访问Jet或ISAM数据库方面受到限制,而且它只能通过现存的ODBC驱动程序来访问关系数据库。但是,RDO已被证明是许多SQL Server、Oracle 以及其他大型关系数据库开发者经常选用的最佳接口。RDO提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及方法。---无疑是在odbc基础上的

2、在VB6.0以前的版本中,使用RemoteData控件创建RDO对象访问和操作远程数据源

我的理解:RDO是接口,连接数据库的接口,应用程序通过RemoteData控件创建RDO对象访问和操作远程数据源。

 

ADO(ActiveX Data Objects)

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

知识点:

1ADODAO/RDO的后继产物。ADO 2.0在功能上与RDO更相似,而且一般来说,在这两种模型之间有一种相似的映射关系。ADO"扩展"DAO RDO 所使用的对象模型,这意味着它包含较少的对象、更多的属性、方法(和参数),以及事件。 作为最新的数据库访问模式,ADO的使用也是简单易用,所以微软已经明确表示今后把重点放在ADO上,对DAO/RDO不再作升级,所以ADO已经成为了当前数据库开发的主流。

2 ADO涉及的数据存储有DSN(数据源名称)ODBC(开放式数据连接)以及OLE DB三种方式。---可以说是对odbcoledb这些系统级的编程接口的汇接,并对DAO,RDO这些应用级的编程接口的升级吧。

3ADO是一个数据库访问组件,可以在VBVCVC++程序中使用。它分为后面两种,ADODCADODB
ADODC
是一个图形化的控件,就是VB里部件--控件--Microsoft ADO Data Control 6.0。然后设置Adodc的,连接数据库
ADODB
ADO数据对象类别名称,一般在代码中编写,如Dim con as New ADODB.Connection
ADODC
ADODB可以同时在一个程序中使用,也可以单独使用。

ADODC是封装ADO的VB数据控件,可减少代码编写.

ADODB是数据对象,操作数据库需通过编写代码来实现.

adodc是控件,目的方便大家。adodb是对象,必须自己建立连接,较麻烦但比较灵活。

4ADO 是基于OLE DB的访问接口, 它是面向对象的OLE DB技术,继承了OLE DB的优点。属于数据库访问的高层接口。

我的理解:ADO也可以理解为是一个接口,只不过是数据库访问的高层接口,需要依赖OLE DB的连接数据库,流程是ado --- oledb --- db ,通过ADODC控件和ADODB对象来访问和操作数据库

 

ODBC(Open Database Connectivity)

定义:提供了一种标准的API应用程序编程接口)方法来访问数据库管理系统DBMS)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBCODBC的设计者们努力使它具有最大的独立性和开放性:与具体的编程语言无关,与具体的数据库系统无关,与具体的操作系统无关。

知识点:

1、ODBC只能连接关系数据库

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

我的理解:ODBC也是接口,通过ODBC API来连接和操作数据库

 

OLE DB(Object Linking and Embedding, Database,对象链接嵌入数据库,有时亦写作OLEDB或OLE-DB)

定义:微软为以统一方式访问不同类型的数据存储设计的一种应用程序接口,是一组用组件对象模型(COM)实现的接口,而与对象连接与嵌入(OLE)无关。它被设计成为ODBC的一种高级替代者和继承者,把它的功能扩展到支持更多种类的非关系型数据库,例如可能不支持SQL对象数据库和电子表格(如Excel)。

知识点:

1OLE DB 组件包括数据提供程序(包含和表现数据)、数据使用者(使用数据)和服务组件(处理和传送数据,例如,查询处理器和游标引擎)。

2OLE DB 包含了一个连接 ODBC 的“桥梁”,对现用的各种 ODBC 关系型数据库驱动程序提供一贯的支持。---号称取代odbc,但也兼容odbc。这么说吧,我们操作ADO,ADO则访问OLEDB(当然可以访问其他的,只要符合ADO接口),OLEDB查询ODBC(也可以不用找他)得到数据接口操作数据,也就是说OLEDB位于ODBC层与应用程序之间. 你的ADO调用先被送到OLEDB,然后再交由ODBC处理. 你也可以直接连接到OLEDB.

3OLE DB是连接各种不同数据(关系数据库,大型数据库,文件系统,Email服务器,文本文件...)的统一界面.

4、oledb 是对ado的实现,每种数据都要提供oledb才能被ado调用,如下

ado --- oledb --- db

目前主流数据库应该都提供了oledb 如 mysql oracle

不过不提供也没关系,可以通过odbc来连接数据,流程如下

ado ---- odbc ---- db

只是性能没有直接用oledb好而已

5、oledb分两种:直接的oledb和面向odbc的oledb,后者架构在odbc上,这样没有自己的oledb提供者的数据库也可以使用oledb的特点了。 

6、odbc 是一种通用数据源,oledb 是专用数据源,先有OLEDB 等专用数据源,然后根据专用数据源开发符合 ODBC 标准得通用数据源

我的理解:OLE DB是一种底层接口,如果要和ODBC排序的话,OLEDB位于ODBC层与应用程序之间,需要通过ADO连接和操作数据库

 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn