故事库-中国往事  > 所属分类  > 
[0] 评论[0] 编辑

ADO

一种程序对象,用于表示用户数据库中的数据结构和所包含的数据。在Microsoft Visual Basic编辑器中,可以使用ADO对象以及ADO的附加组件(称为Microsoft ADO Extensions for DLL and Security(ADOX))来创建或修改表和查询、检验数据库、或者访问外部数据源。还可在代码中使用ADO来操作数据库中的数据。

目录

ADO (ActiveX Data Objects,ActiveX数据对象)是Microsoft提出的应用程序接口(API)用以实现访问关系或非关系数据库中的数据。例如,如果您希望编写应用程序从DB2或Oracle数据库中向网页提供数据,可以将ADO程序包括在作为活动服务器页(ASP)的HTML文件中。当用户从网站请求网页时,返回的网页也包括了数据中的相应数据,这些是由于使用了ADO代码的结果。

像Microsoft的其它系统接口一样,ADO是面向对象的。它是Microsoft全局数据访问(UDA)的一部分,Microsoft认为与其自己创建一个数据,不如利用UDA访问已有的数据库。为达到这一目的,Microsoft和其它数据库公司在它们的数据库和Microsoft的OLE数据库之间提供了一个“桥”程序,OLE数据库已经在使用ADO技术。ADO的一个特征(称为远程数据服务)支持网页中的数据相关的ActiveX控件和有效的客户端缓冲。作为ActiveX的一部分,ADO也是Microsoft的组件对象模式(COM)的一部分,它的面向组件的框架用以将程序组装在一起。

ADO从原来的Microsoft数据接口远程数据对象(RDO)而来。RDO与ODBC一起工作访问关系数据库,但不能访问如ISAM和VSAM的非关系数据库。

ADO 是对当前微软所支持的数据库进行操作的最有效和最简单直接的方法,它是一种功能强大的数据访问编程模式,从而使得大部分数据源可编程的属性得以直接扩展到你的Active Server 页面上。可以使用ADO 去编写紧凑简明的脚本以便连接到 Open Database Connectivity (ODBC) 兼容的数据库和 OLE DB 兼容的数据源,这样 ASP 程序员就可以访问任何与 ODBC 兼容的数据库,包括 MS SQL SERVER、Access、 Oracle等等。

比如,如果网站开发人员需要让用户通过访问网页来获得存在于IBM DB2或者Oracle数据库中的数据,那么就可以在ASP页面中包含ADO程序,用来连接数据库。于是,当用户在网站上浏览网页时,返回的网页将会包含从数据库中获取的数据。而这些数据都是由ADO代码做到的。

ADO是一种面向对象的编程接口,微软介绍说,与其同IBM和Oracle提倡的那样,创建一个统一数据库,不如提供一个能够访问不同数据库的统一接口,这样会更加实用一些。为实现这一目标,微软在数据库和微软的OLE DB中提供了一种“桥”程序,这种程序能够提供对数据库的连接。 开发人员在使用ADO时,其实就是在使用OLE DB,不过OLE DB更加接近底层。ADO的一项属性-远程数据服务,支持“数据仓库”ActiveX 组件以及高效的客户端缓存。作为ActiveX的一部分,ADO也是COM组件的一部分。ADO是由早期的微软数据接口——远程数据对象RDO演化而来的。RDO同微软的ODBC一同连接关系数据库,不过不能连接非关系数据库。

ADO向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。对那些熟悉RDO的程序员来说,你可以把OLE DB比作是ODBC驱动程序。如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLE DB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLE DB提供者(OLE DB provider)。但微软正积极推广该技术,并打算用OLE DB取代ODBC。

ADO向VB程序员提供了很多好处。包括易于使用,熟悉的界面,高速度以及较低的内存占用(已实现ADO2.0的Msado15.dll需要占用342K内存,比RDO的Msrdo20.dll的368K略小,大约是DAO3.5的Dao350.dll所占内存的60%)。同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。因此你可以只创建一个"Connection"对象,但是可以有多个,独立的"Recordset"对象来使用它。ADO针对客户/服务器以及WEB应用程序作了优化。

定义

ADO 是一项微软的技术

ADO 指 ActiveX 数据对象(ActiveX Data Objects)

ADO 是一个微软的 Active-X 组件

ADO 会随微软的 IIS 被自动安装

ADO 是一个访问数据库中数据的编程接口

从 ASP 页面访问数据库

从一个 ASP 页面内部访问数据库的通常的方法是:

创建一个到数据库的 ADO 连接

打开数据库连接

创建 ADO 记录集

从记录集提取您需要的数据

关闭记录集

关闭连接

接口简介

ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。

1、_ConnectionPtr接口

返回一个记录集或一个空指针。通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。

2、_CommandPtr接口

返回一个记录集。它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。

3、_RecordsetPtr接口

是一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。

4、接口间的区别与联系

使用_ConnectionPtr接口返回一个记录集不是一个好的使用方法。对于要返回记录的操作通常用_RecordsetPtr来实现。而用_ConnectionPtr操作时要想得到记录条数得遍历所有记录,而用_RecordsetPtr时不需要。

在使用_CommandPtr接口时,你可以利用全局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用连接串。如果你只执行一次或几次数据访问操作,后者是比较好的选择。但如果你要频繁访问数据库,并要返回很多记录集,那么,你应该使用全局_ConnectionPtr接口创建一个数据连接,然后使用_CommandPtr接口执行存储过程和SQL语句。

同_CommandPtr接口一样,_RecordsetPtr接口不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给_RecordsetPtr的connection成员变量,让它自己创建数据连接。如果你要使用多个记录集,最好的方法是同Command对象一样使用已经创建了数据连接的全局_ConnectionPtr接口,然后使用_RecordsetPtr执行存储过程和SQL语句。

ADO 事件

ActiveX 数据对象 (ADO) 是添加到 Microsoft Active Server Pages (ASP) 的一套高级别接口,有利于服务器端与数据库的连接。ADO 与低级别接口 (OLE DB) 一起使用则有利于 Microsoft Universal Data Access 策略。ADO 2.0 版可生成 Visual Studio Analyzer 事件。可使用这些事件跟踪分布式应用程序中的 ADO 交互。

ADO 生成的 Visual Studio Analyzer 事件

事件 事件描述 事件数据

ConnectionClose 指示 ADO 要与 OLE DB 数据源断开连接。 无。

ConnectionOpen 指示 ADO 正在连接到 OLE DB 数据源。 如果客户端提供,则为连接到数据源所用的连接字符串。

Find 指示 ADO 客户端已调用 ADO Recordset.Find 函数。 “查找”操作的判据;根据该判据匹配记录。

GetRows 指示 ADO 客户端已调用 ADO Recordset.GetRows 函数。 提取的行数。

QueryResult 指示数据库已返回响应查询的结果集。 无。

QuerySend 指示 ADO 正在执行命令。该事件可由下列函数触发:

Connection.Execute

Command.Execute

Connection.<存储过程名>

Recordset.Open 构成查询的 SQL 语句。

RecordsetOpen 指示 ADO 正在打开远程服务器上的记录集。仅适用于三层方案。 打开记录集的源(通常为行返回的命令文本)。

Sort 指示 ADO 准备筛选或对数据排序。 排序或筛选应用于记录集数据的判据。

Transaction Rollback 指示 ADO 要中止当前本地事务。 返回真或假。如果为真,则保持中止,即该事务中止后紧跟着开始另一事务。如果为假,则不保持中止。

TransactionCommit 指示 ADO 正在提交 OLE DB 提供程序上的本地事务。 返回真或假。如果为真,则保留提交,即该事务提交后紧跟着开始另一事务。如果为假,则不保留提交。

TransactionStart 指示 ADO 正在开始 OLE DB 提供程序上的本地事务。 ADO 开始事务所基于的隔离级别。隔离级别指示可看到其他事务所做更改的哪一级别。

UpdateBatch 指示 ADO 正在向提供程序发送更新批处理。仅适用于三层方案。 如果有,为 ADO 将更新发送到的远程服务器名。

组织形式

以前的对象模型,如DAO和RDO是层次型的。也就是说一个较低的数据对象如Recordset是几个较高层次的对象,如Environment和QueryDef,的子对象。在创建一个QueryDef对象的实例之前,你不能创建DAO Recordset对象的实例。但ADO却不同,它定义了一组平面型顶级对象.。

最重要的三个ADO对象是Connection, Recordset和Command. 本文将主要介绍Connection和Recordset这两个对象。每个Connection的属性定义了与数据源的连接。Recordset对象接收来自数据源的数据。Recordset可以与Connection一起起使用,先建立一个连接,然后获取数据。尽管如此,Recordset也可以被单独创建,其Connection参数可以在Open属性定义。

ADO 2.0特点

对于ADO1.5以前包括1.5的版本来说,从功着你可以通过这两种方法解决同样的问题;它不是指存在重命名的或者优化的功能相同的对象.因此,移植到ADO不是一个简单的事情.从另一方面来说,一旦你熟练掌握了RDO或DAO技术的话,学习ADO是件相当容易的事情.

ADO 2.0的新特性包括事件处理,记录集的延续,分层目录结构指针和数据成形,分布式事务处理,多维数据,远程数据服务(RDS),以及对C++和Java的支持的增强.在钻研一些Visual Basic代码的时候将会见到所有的这些特性.当使用Visual J++时,我将举例说明新的Windows Foundation Classes(WFC)是如何支持ADO的.ADO的最让人激动的是在Visual Studio 6.0中的任何开发工具中你都可以找到对它的充分的支持.

编程模型

连接数据源 (Connection),可选择开始事务。

可选择创建表示 SQL 命令的对象 (Command)。

可选择指定列、表以及 SQL 命令中的值作为变量参数 (Parameter)。

执行命令(Command、Connection 或 Recordset)。

如果命令以行返回,将行存储在存储对象中 (Recordset)。

可选择创建存储对象的视图以便进行排序、筛选和定位数据 (Recordset)。

编辑数据。可以添加、删除或更改行、列 (Recordset)。

在适当情况下,可以使用存储对象中的变更对数据源进行更新 (Recordset)。

在使用事务之后,可以接受或拒绝在事务中所做的更改。结束事务 (Connection)。

附件列表


0

故事内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

如果您认为本故事还有待完善,请 编辑

上一篇 布基纳法索    下一篇 中国冶金科工集团有限公司

同义词

暂无同义词
  • 友情链接:
  • 中原企业家
  • 华锐社区
  • 法学学习
  • 故事库
  • 舆情信息
  • 郑州商业观察
  • 美丽中国
  • 药食同源
  • Lovely China
  • 纯欲天花板
  • 留学生