注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

︷帅氣~~の醜男

这仅仅是笔记,仅为了方便查阅而已。

 
 
 

日志

 
 

ADO  

2010-05-09 11:13:56|  分类: 编程相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 ADO (ActiveX Data ObjectsActiveX数据对象)是Microsoft提出的应用程序接口(API)用以实现访问关系或非关系数据库中的数据。例如,如果您希望编写应用程序从DB2Oracle数据库中向网页提供数据,可以将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提供者比较少,但微软正积极推广该技术,并打算用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 对象总结

<DIV>对象</DIV> <DIV>说明</DIV>
<DIV>Command</DIV> <DIV>Command 对象定义了将对数据源执行的指定命令。</DIV>
<DIV>Connection</DIV> <DIV>代表打开的、与数据源的连接。</DIV>
<DIV>DataControl (RDS)</DIV> <DIV>将数据查询 Recordset 绑定到一个或多个控件上(例如,文本框、网格控件或组合框),以便在 Web 页上显示 ADOR.Recordset 数据。</DIV>
<DIV>DataFactory (RDS Server)</DIV> <DIV>实现对客户端应用程序的指定数据源进行读/写数据访问的方法。</DIV>
<DIV>DataSpace (RDS)</DIV> <DIV>创建客户端代理以便自定义位于中间层业务对象。</DIV>
<DIV>Error</DIV> <DIV>包含与单个操作(涉及提供者)有关的数据访问错误的详细信息。</DIV>
<DIV>Field</DIV> <DIV>代表使用普通数据类型的数据的列。</DIV>
<DIV>Parameter</DIV> <DIV>代表与基于参数化查询或存储过程的 Command 对象相关联的参数或自变量。</DIV>
<DIV>Property</DIV> <DIV>代表由提供者定义的 ADO 对象的动态特性。</DIV>
<DIV>RecordSet</DIV> <DIV>代表来自基本表或命令执行结果的记录的全集。任何时候,Recordset 对象所指的当前记录均为集合内的单个记录。</DIV>


二、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 事件

<DIV align=center>事件</DIV> <DIV align=center>事件描述</DIV> <DIV align=center>事件数据</DIV>
<DIV>ConnectionClose</DIV> <DIV>指示 ADO 要与 OLE DB 数据源断开连接。</DIV> <DIV>无。</DIV>
<DIV>ConnectionOpen</DIV> <DIV>指示 ADO 正在连接到 OLE DB 数据源。</DIV> <DIV>如果客户端提供,则为连接到数据源所用的连接字符串。</DIV>
<DIV>Find</DIV> <DIV>指示 ADO 客户端已调用 ADO Recordset.Find 函数。</DIV> <DIV>“查找”操作的判据;根据该判据匹配记录。</DIV>
<DIV>GetRows</DIV> <DIV>指示 ADO 客户端已调用 ADO Recordset.GetRows 函数。</DIV> <DIV>提取的行数。</DIV>
<DIV>QueryResult</DIV> <DIV>指示数据库已返回响应查询的结果集。</DIV> <DIV>无。</DIV>
<DIV>QuerySend</DIV> <DIV>指示 ADO 正在执行命令。该事件可由下列函数触发: </DIV><DIV>Connection.Execute
Command.Execute
Connection.<存储过程名>
Recordset.Open</DIV>
<DIV>构成查询的 SQL 语句。</DIV>
<DIV>RecordsetOpen</DIV> <DIV>指示 ADO 正在打开远程服务器上的记录集。仅适用于三层方案。</DIV> <DIV>打开记录集的源(通常为行返回的命令文本)。</DIV>
<DIV>Sort</DIV> <DIV>指示 ADO 准备筛选或对数据排序。</DIV> <DIV>排序或筛选应用于记录集数据的判据。</DIV>
<DIV>Transaction Rollback</DIV> <DIV>指示 ADO 要中止当前本地事务。</DIV> <DIV>返回真或假。如果为真,则保持中止,即该事务中止后紧跟着开始另一事务。如果为假,则不保持中止。</DIV>
<DIV>TransactionCommit</DIV> <DIV>指示 ADO 正在提交 OLE DB 提供程序上的本地事务。</DIV> <DIV>返回真或假。如果为真,则保留提交,即该事务提交后紧跟着开始另一事务。如果为假,则不保留提交。</DIV>
<DIV>TransactionStart</DIV> <DIV>指示 ADO 正在开始 OLE DB 提供程序上的本地事务。</DIV> <DIV>ADO 开始事务所基于的隔离级别。隔离级别指示可看到其他事务所做更改的哪一级别。</DIV>
<DIV>UpdateBatch</DIV> <DIV>指示 ADO 正在向提供程序发送更新批处理。仅适用于三层方案。</DIV> <DIV>如果有,为 ADO 将更新发送到的远程服务器名。</DIV>

<DIV> </DIV><DIV>

三、在哪里能得到ADO?

目前ADO1.5版已经可以从微软网站免费下载。到目前为止,微软网站仍是你获取有关ADO最新信息的最佳场所。ADO1.5是作为OLE DB SDK的一部分提供的。你可以从下面这个网址下载:
http://www.microsoft.com/data/oledb/download.htm

在下载之前请先确认OLE DB SDK提供的各项特性。下载文件大约有15M,如果完全安装的话要占用80M的硬盘空间。如果你只对ADO感举趣,就选择最小安装,这样只会占用你15M的硬盘空间。关于ADO的网页在:

http://www.microsoft.com/data/ado/adoinfo.htm.

在这里你可以找到许多关于ADO的示例代码和文章,尤其是在"Workshop"系列的文章中。你也可以从本站下载ADO2.5的帮助文件

尽管OLE DB SDK提供自己的ADO帮助文件,你会发现ADO1.0的帮助文件更易于使用。同时它还向你提供ADO对象模型的图示

四、ADO是如何组织起来的?

以前的对象模型,如DAO和RDO是层次型的。也就是说一个较低的数据对象如Recordset是几个较高层次的对象,如Environment和QueryDef,的子对象。在创建一个QueryDef对象的实例之前,你不能创建DAO Recordset对象的实例。但ADO却不同,它定义了一组平面型顶级对象.
最重要的三个ADO对象是Connection, Recordset和Command. 本文将主要介绍Connection和Recordset这两个对象。每个Connection的属性定义了与数据源的连接。Recordset对象接收来自数据源的数据。Recordset可以与Connection一起起使用,先建立一个连接,然后获取数据。尽管如此,Recordset也可以被单独创建,其Connection参数可以在Open属性定义。

  评论这张
 
阅读(256)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017