`
jiqimiao
  • 浏览: 58778 次
  • 性别: Icon_minigender_1
  • 来自: 常州
社区版块
存档分类
最新评论

ADO

 
阅读更多

Microsoft ActiveX Data Objects (ADO) 使 得 客 户 端 应 用 程 序 能 够 通 过 任 何 OLE DB 提 供 者 来 访 问 和 操 作 数 据 库 服 务 器 中 的 数 据。ADO 最 主 要 的 优 点 是 易 于 使 用、 速 度 快、 内 存 支 出 少 和 磁 盘 遗 迹 小。

---- OLE DB 是 新 的 底 层 接 口, 它 定 义 了 一 种 通 用 的 数 据 访 问 范 例。 也 就 是 说,OLE DB 并 不 局 限 于ISAM、Jet 甚 至 关 系 数 据 源, 但 是 它 能 够 处 理 任 何 类 型 的 数 据, 而 不 考 虑 它 们 的 格 式 和 存 储 方 法。 在 实 际 应 用 中, 这 种 多 样 性 意 味 着 可 以 访 问 驻 留 在 Excel 电 子 数 据 表、 文 本 文 件 甚 至 邮 件 服 务 器 中 的 数 据。 由 于 接 口 比 较 复 杂, 不 能 在Visual Basic 中 直 接 访 问OLE DB。ADO 封 装 并 且 实 现 了OLE DB 的 所 有 功 能。VB 6.0 对ADO 有 完 整 的 支 持, 可 以 通 过ADO、OLE DB 的 接 口, 调 整OLE DB 的 灵 活 性。 甚 至 可 以 在VB 中 创 建 自 己 的OLE DB 提 供 程 序。

---- ADO 的 另 一 个 功 能 是 远 程 数 据 访 问(RDS), 能 够 通 过 一 个 往 返 传 输 将 数 据 从 服 务 器 移 动 到 客 户 端 应 用 程 序 或Web 页 中, 然 后 在 客 户 端 对 数 据 进 行 操 作, 最 后 将 更 新 数 据 返 回 服 务 器。RDS 现 在 的 版 本 是RDS 1.5。RDS 已 与 ADO 编 程 模 块 合 并 以 简 化 客 户 端 数 据 的 远 程 调 用。

---- ADO 对 象 模 型

每 个Connection、Command、Recordset 和Field 对 象 都 有Properties 集 合。


<script language="JavaScript" src="http://www.setad.com/js/pc.js" type="text/javascript"></script>
ADO 对 象 描 述
Command 包 含 关 于 某 个 命 令, 例 如 查 询 字 符 串、 参 数 定 义 等 的 信 息。 在 功 能 上 和RDO 的rdoQuery 对 象 相 似。
Connection 包 含 关 于 某 个 数 据 提 供 程 序 的 信 息。 功 能 上 和RDO 的rdoConnection 对 象 相 似, 并 且 包 含 了 关 于 结 构 描 述 的 信 息。 它 还 包 含 某 些RDOEnvironment 对 象 的 功 能, 例 如 transaction 控 件。
Error 包 含 数 据 提 供 程 序 出 错 时 的 扩 展 信 息。 和RDO 的rdoError 对 象 相 似。
Field 包 含 记 录 集 中 数 据 的 某 单 个 列 的 信 息。 和RDO 的rdoColumn 对 象 相 似。
Parameter 包 含 参 数 化 的Command 对 象 的 某 单 个 参 数 的 信 息。 该Command 对 象 有 一 个 包 含 其 所 有Parameter 对 象 的Parameters 集 合。 和RDO 的rdoParameter 对 象 相 似。
Property 包 含 某 个ADO 对 象 的 提 供 程 序 定 义 的 特 征。 没 有 任 何 等 同 于 该 对 象 的RDO, 但DAO 有 一 个 相 似 的 对 象。ADO 对 象 可 以 具 有 两 种 属 性: Built-In 属 性:ADO 的 本 地 属 性。 也 就 是 说, 任 何 使 用 熟 悉 的MyObject.Property 语 法 的 新 对 象 都 可 以 立 即 使 用 的ADO 中 的 属 性。Built-in 属 性 并 不 在 某 个 对 象 的 Properties 集 合 中 以Property 对 象 的 形 式 出 现, 因 此 尽 管 可 以 修 改 它 们 的 值, 却 不 能 修 改 它 们 的 特 性 或 将 它 们 删 除。 Dynamic 属 性:ADO 的 非 本 地 属 性, 它 们 是 由 下 一 级 数 据 提 供 程 序 定 义 的。 它 们 出 现 在 合 适 的ADO 对 象 的Properties 集 合 中。 例 如, 一 个 数 据 提 供 程 序 特 有 的 属 性 可 能 指 明 某 个Recordset 对 象 是 支 持 事 务 还 是 支 持 更 新。 这 些 附 加 的 属 性 在Recordset 的 Properties 集 合 中 以Property 对 象 的 形 式 出 现。 不 同 的 数 据 提 供 程 序 可 能 提 供 一 个 或 多 个 特 殊 的 属 性, 来 处 理 提 供 程 序 特 有 的 操 作。
Recordset ecordset 对 象 包 含 某 个 查 询 返 回 的 记 录, 以 及 那 些 记 录 中 的 游 标。 和RDO 的rdoResultset 对 象 相 似。 您 可 以 在 不 用 显 式 地 打 开Connection 对 象 的 情 况 下, 打 开 一 个Recordset( 例 如, 执 行 一 个 查 询)。 不 过, 如 果 选 择 创 建 一 个Connection 对 象, 就 可 以 在 同 一 个 连 接 上 打 开 多 个Recordset 对 象。

ADO 和DAO/RDO 的 比 较

ADO 是DAO/RDO 的 后 继 产 物。ADO 2.0 在 功 能 上 与 RDO 更 相 似, 而 且 一 般 来 说, 在 这 两 种 模 型 之 间 有 一 种 相 似 的 映 射 关 系。ADO 扩 展 了DAO 和RDO 所 使 用 的 对 象 模 型, 这 意 味 着 它 包 含 较 少 的 对 象、 更 多 的 属 性、 方 法( 和 参 数), 以 及 事 件。 例 如,ADO 没 有 与rdoEngine 和rdoEnvironment 对 象 相 等 同 的 对 象, 可 以 显 露ODBC 驱 动 程 序 管 理 器 和hEnv 接 口。 尽 管 事 实 上 您 的 接 口 可 能 是 通 过ODBC OLE DB 服 务 提 供 程 序 实 现 的, 但 您 当 前 也 不 能 从ADO 中 创 建ODBC 数 据 源。

---- ADO 并 不 是 自 动 和 您 现 存 的 数 据 访 问 应 用 程 序 代 码 兼 容 的。 当ADO 封 装DAO 和RDO 的 功 能 性 的 时 候, 您 必 须 将 许 多 语 言 要 素 转 换 为ADO 语 法。 在 某 些 情 况 下, 这 将 意 味 着 您 现 存 代 码 的 某 些 功 能 的 一 个 简 单 转 换。 在 其 他 情 况 下, 最 佳 的 做 法 可 能 是 用ADO 的 新 功 能 重 写 该 应 用 程 序。

---- 包 含 在DAO 和RDO 模 型 中 的 许 多 功 能 被 合 并 为 单 个 对 象, 这 样 就 生 成 了 一 个 简 单 得 多 的 对 象 模 型。 与DAO 和RDO 不 同 的 是, 尽 管ADO 对 象 是 分 层 结 构 的, 但 在 分 层 结 构 范 围 之 外 也 是 可 以 创 建 的。 不 过, 应 当 注 意,ADO 当 前 并 不 支 持DAO 的 所 有 功 能。ADO 主 要 包 括RDO 风 格 的 功 能 性, 以 便 和OLE DB 数 据 源 交 互, 另 外 还 包 括 远 程 和DHTML 技 术。

ADO 新 内 容

ADO 除 了 具 备RDO 在 远 程 数 据 库 访 问 的 优 越 性, 如 异 步 查 询、 批 处 理 更 新、 服 务 器 侧 的 游 标、 存 储 过 程 的 调 用 及 事 务 处 理 等, 还 有 以 下 新 内 容。

---- Recordset 持 久 性 通 过 记 录 集 持 久 性, 可 将Recordset 数 据 和 数 据 元 作 为 文 件 保 存。 随 后 使 用 持 久 文 件 重 新 创 建Recordset 对 象。 持 久 文 件 可 保 存 于 本 地 驱 动 器、 网 络 服 务 器 或 使 用URL 的Web 站 点 上。 索 引 支 持 以 及 查 找、 排 序 和 筛 选 对 字 段 的 索 引 可 极 大 增 强 新Recordset 对 象 的Find 方 法 以 及Sort 和Filter 属 性 的 性 能。 在ADO 2.0 中, 可 通 过 设 置Field 对 象 的 动 态Optimize 属 性 来 为 它 创 建 内 部 索 引。 将CursorLocation 设 置 为adUseClient 时, 该 动 态 属 性 被 添 加 到Field 对 象 的Properties 集 合 中。 请 注 意 该 索 引 内 置 于ADO 2.0, 因 此 无 法 对 它 进 行 访 问 或 用 于 其 他 方 面。Sort 属 性 决 定 移 动Recordset 行 的 顺 序;Filter 属 性 决 定 移 动 行 时 哪 些 行 是 可 用 的;Find 方 法 可 在Recordset 已 索 引 的 列( 字 段) 中 快 速 找 出 数 值。

---- 这 是 对DAO 方 法 的 扩 展,RDO 不 支 持 上 述 方 法 和 属 性。 而 且 它 也 不 是 对 任 何 的 数 据 库 都 适 用。

----

---- ADO 事 件 ADO 2.0 支 持 事 件, 事 件 是 对 某 些 操 作 将 要 或 已 经 发 生 的 通 知。

---- 有 两 类 事 件:ConnectionEvent 和RecordsetEvent。Connection 对 象 产 生 ConnectionEvent 事 件, 而Recordset 对 象 则 产 生RecordsetEvent 事 件。 事 件 由 事 件 处 理 程 序 例 程 处 理, 该 例 程 在 某 个 操 作 开 始 之 前 或 结 束 之 后 被 调 用。

---- 某 些 事 件 是 成 对 出 现 的。 开 始 操 作 前 调 用 的 事 件 名 格 式 为WillEvent(Will 事 件), 而 操 作 结 束 后 调 用 的 事 件 名 格 式 为EventComplete(Complete 事 件)。 其 余 的 不 成 对 事 件 只 在 操 作 结 束 后 发 生( 其 名 称 没 有 任 何 固 定 模 式)。 事 件 处 理 程 序 由 状 态 参 数 控 制。 附 加 信 息 由 错 误 和 对 象 参 数 提 供。 可 以 请 求 事 件 处 理 程 序 不 接 受 第 一 次 通 知 以 后 的 任 何 通 知。 例 如, 可 以 选 择 只 接 收Will 事 件 或Complete 事 件。

---- 在 某 种 编 程 语 言 中, 来 自 多 个ADO 对 象 的 事 件 可 以 由 一 个 事 件 处 理 程 序 处 理。 一 个 事 件 也 可 以 用 多 个 事 件 处 理 程 序 处 理, 但 不 太 常 见。

---- 分 级 游 标 和 数 据 构 形 概 述 ADO 2.0 推 出 了 分 级 游 标 功 能, 通 过 该 功 能 可 将 子Recordset 对 象 定 义 为 父Recordset 中 某 个 字 段 的 值。

---- 可 以 这 样 理 解 分 级 游 标: 假 设 有 一 个 可 视 控 件, 如 文 件 打 开 对 话 框, 它 可 依 分 级 方 式 显 示 文 件 和 子 目 录。 可 将 每 一 个 目 录 都 看 作Recordset 对 象, 并 将 该 目 录 中 的 每 个 文 件 看 作Field 对 象; 同 样, 将 该 目 录 中 的 每 个 子 目 录 也 看 作Field 对 象, 这 样 该 对 象 的 值 就 成 为 另 一 个Recordset。

---- ADO 2.0 还 推 出 了 新 的 形 状 数 据 操 作 语 言 语 法, 它 可 以 使 查 询 结 果 表 示 为 分 级Recordset。 发 出 形 状 语 言 命 令 的 方 式 与 发 出 任 何 其 他 ADO 命 令 字 符 串 没 有 什 么 区 别。 形 状 语 言 内 置 于ADO 客 户 端 游 标 引 擎 中。 将 它 的 创 建 过 程 称 为 数 据 构 形。 使 用 形 状 语 言, 可 通 过 两 种 途 径 创 建 分 级Recordset 对 象。 其 一 是 将 子Recordset 追 加 到 父Recordset, 其 二 则 是 对 子Recordset 进 行 合 计 操 作 并 由 此 产 生 父Recordset。 可 将 分 级Recordset 对 象 放 置 在 所 需 的 任 何 深 度( 即 创 建 子Recordset 对 象 的 子Recordset 对 象, 如 此 继 续)。 通 过 程 序 或 相 应 的 可 视 控 件 访 问 已 得 出 结 果 的 分 级Recordset。

Delphi 5 ADO
ADO
Universal Data Access (UDA)是<nobr>微软</nobr>公司策畋一部分,提供了快速访问各种<nobr>数据库</nobr>的能力,UDA提供了一种不受限制的能力,通过易用的API<nobr>接口</nobr>访问各种<nobr>数据源</nobr>,当然,这需要与其兼容的<nobr>驱动程序</nobr>,类似Delphi的BDE,这项技术能在一个<nobr>程序</nobr>中从多样的<nobr>数据</nobr>源中轻易的访问到数据。UDA用MDAC来实现,而MDAC则包括Active Data Objects(ADO),Open Database Connectivity(ODBC)与OLE DB.
ADO是MDAC的应用/j2me/code/' target='_blank'>程序设计接口,OLE DB则是系统级的接口,定义了一套COM接口,提供了从关联数据库及文件系统的数据访问能力,ODBC为了向后兼容也包含在MDAC中,但是在将来,他要被OLE DB所替代,现在对于ODBC,开发者通过ADO来使用ODBC驱动,尽管如此,OLE DB已经可用于Microsoft Access,Microsoft SQL以及Oracle.
ADO另外的一个重要的优势是将被内置在微软将的所有操作系统不,包括Windows 2000,这就意味着虽然现在为了使用ADO来访问数据库而不得不在每一台PC中<nobr>安装</nobr>ADO,而将来这种安装技术将消失。如果想进一步学习UDA及ADO,可以访问微软的数据访问主页http://www.microsoft.com/data/default.htm,从这个主页上,不但可以载到 ADOredistributable,用他可以在windows95/98/nt安装ADO,也能得到MDAC的SDK,包含了完整的文档以及需要开发自己的OLE DB 的所有工具,此外,SDK也包含ADO的发行版。
用ADO需要的每一件事,都被制作在Delphi 5的安装盘上,如果安装MDAC,进行MDAC目录,执行程序MDAC_TYP.EXE即可.由于安装程序仅为一个文件,所以安装MDAC也变得非常简单。如果自己开发的应用程序需要安装MDAC,则此安装程序还可作为自己开发应用的安装程序的一部分,为了去除它的安装提示信息,需要在自制安装程序时使用如下的命令行:mdac_typ.exe /q:a /c:"setup.exe /qt"
对于更多的安装MDAC的信息,象文件列表及依赖关系,可以看MDAC SDK文档。

使用ADOConnection 和 ADODataSet<nobr>控件</nobr>
D5提供了一套新的控件以支持ADO,并且能够轻易的转换现有的应用到ADO,要建立一个ADO应用,首先需要在form或data module中放一个ADOConnection控件,这与BDE 的Database 控件差不多,他允许通过ConnectionString属性定义与数据库的联接,如果想手工建立这个联接串可不是一件容易的事,这个串是由';'隔开的一系列<nobr>参数</nobr>,这些参数很容易就能超过150个字符,幸运是是,微软提供了一个联接串编辑器,使做起这件事来变得简单。为了打开这个编辑器,就可完成这项工作。爽的很。
在这个编辑器中,可以以两种方式之一来选择与数据源的建立,其一是用联接文件的方式,另一种则是建立联接串的形式,默认的情况下是使用联接串,选择build按钮,出现数据联接属性设置对话框,在provider页,可以选择使用的驱动程式,当确定使用的驱动程序后,可以选择下一步,确定具体要联接的数据库,需要注意的是,选择不同的驱动程序,在这一页需要确定的参数是不同的。当确定这里的各个参数后,可以用测试联接按钮来测试数据库是否可以联接,从而确定给定的联接参数是否正确。在这里,我们仅以Microsort Jet 4.0为例子,联接本地的一个Acess表。
现在,当完成联接串后,就可以设置Connected为True,使ADOConnection与数据库真正的联接。此时,可以放置ADODataset控件,实际上,只有ADODataset才是真正与数据一起工作的,通过ADODataset,可以直接与一个表进行联接,也可以执行SQL语句,还可以执行<nobr>存储过程</nobr>(哇,好利害)。使用ADODataset的第一步,就是设置Connection,确定其使用那一个ADOConnection,接下来,要处理两个有关联的属性:CommandType与CommandText,由于CommandText是由commandtype决定的,所以要先设置commandType,正是由他来决定DataSet怎样与数据库工作,用表,SQL还是存储过程。而后CommandText自然就容易设置,不用多说。当这两个参数确定下来,余下的工作就如同原来的使用BDE访问数据库的工作差不多,使用DataSource与ADODataSet联接,与就是用DBGrid等与DataSource联接,现在,利用ADO,可以访问到数据了!
分享到:
评论

相关推荐

    ADO帮助文档--ADO帮助文档

    ADO帮助文档ADO帮助文档ADO帮助文档ADO帮助文档ADO帮助文档ADO帮助文档ADO帮助文档ADO帮助文档ADO帮助文档ADO帮助文档ADO帮助文档ADO帮助文档ADO帮助文档ADO帮助文档ADO帮助文档ADO帮助文档ADO帮助文档ADO帮助文档...

    [ADO]ADO 程序员参考.rar

    \[ADO]ADO 程序员参考.rar\[ADO]ADO 程序员参考.rar

    msado15.dll 32位和64位各版本的ADO都有,最新整理至Win10系统

    msado15.dll 32位和64位各版本的ADO都有,整理更新至Win10操作系统。 msado15.dll版本号说明: 版本号以5.0开头的或含有 nt 一般是windows2000的文件。 版本号以5.1开头的或含有 xp、xpsp1、xpsp2、xpsp3 信息的...

    VC下利用CADO Class(ado2.cpp和ado2.h)和DataGrid分页显示数据库access内容

    包括两个文件ado2.h和ado2.cpp,而网上关于使用这个类进行ADO数据库操作的文章不多。 3、VC6.0下的datagrid貌似没有.net的那么强大,也没有VB6那么好用。连分页都显得麻烦,ADO自带的虚拟分页功能好像在datagrid上...

    ADO与ADO_NET编程指南

    近几年来,ADO已经成为在基于Windows 的应用程序中执行数据访问的领先、优选的方法。今天,已经有大量的ADO应用程序付诸应用,许多开发人员已经对ADO开发非常熟练。随着Microsoft .NET Framework的引入,ADO.NET——...

    ADO助手V1.20---一个获取ADO连接字符串,测试SQL命令的辅助软件

    ADO助手---一个获取ADO连接字符串,测试SQL命令的辅助软件 2010-09-06 +初始版本发布 ADO助手---一个获取ADO连接字符串,测试SQL命令的辅助软件 2010-09-06 +初始版本发布 2011-11-09 -修复有时候用DataGrid...

    ADO 超强大数据库操作类(附例程)

    转来的 Carlos Antollini 编写的功能强大、简单易用的ADO操作数据库的类。从繁重的SQL代码中解放,一个函数搞定读取写入。 在工程中添加ado2.h、ado2.cpp两个文件 如果项目之前在XP在编译,在换到WINDOWS7编译时...

    VC++6.0使用ADO开发ACCESS数据库静态库脱机2.0.rar

    本文通过实例演示如何在VC++中使用ADO进行ACCESS数据库编程,并对涉及到的几个概念进行详细解释。 本文不对ADO和ACCESS的基本概念进行详细解释,主要包括以下内容: 第一部分 ADO和ADOX到底是什么,二者的作用和区别...

    msado15.dll 32位和64位各版本的ADO都有

    找了好久终于找到了所有的ADO控件,再也不用为ADO版本不同而发愁了。msado15.dll,32位和64位各版本的ADO都有,从2。0版一直到WIN7的6。XX版

    ado2.h和ado2.cpp文件

    VC++封转的ado文件,帮助实现ado数据库连接等等功能

    ADO全解,ADO全解

    ADO全解,ADO全解ADO全解,ADO全解ADO全解,ADO全解

    Excel_VBA+ADO+SQL入门教程_-_汇总.pdf

    后提及的 ADO 并不是非学不可的,非学不可的是基础操作、函数、透视表、图表…… 然而大数据时代,对于另外相当一部分表族而言,Excel 用久了,慢慢的,会意 识到一个大问题;曾经在你心中无比强大的 Excel 函数,...

    Delphi用ADO操作数据库完整示例

    Delphi用ADO操作数据库完整示例.docDelphi用ADO操作数据库完整示例.docDelphi用ADO操作数据库完整示例.docDelphi用ADO操作数据库完整示例.docDelphi用ADO操作数据库完整示例.docDelphi用ADO操作数据库完整示例....

    ADO.NET本质论

    讲解了数据结构,演示了如何用ADO.NET来解决具体的数据访问问题。重点讨论了ADO.NET如何有效地平衡"功能的泛化"和"执行效率",以及它如何解决对扩展性、并发性和可靠性的要求。针对其他数据访问API(包括OLE DB,ADO...

    ADO中文帮助.rar

    欢迎使用 ADO Microsoft® ActiveX® Data Objects (ADO) 使您的客户端应用程序能够通过 OLE DB 提供者访问和操作数据库服务器中的数据。 ADO 程序员参考 ADO 支持用于建立客户端/服务器和基于 Web 的应用程序的...

    ADO_QT_qtaccess_ADO_ACCESS数据库

    QT通过ADO形式操作access数据库的封装类,亲测可用。

    ADO.NET 4从入门到精通

    《ADO.NET 4从入门到精通》主要内容简介:ADO.NET是windows开发平台上的核心数据技术之一。《ADO.NET 4从入门到精通》是microsoft ADO.NET 4的入门教程,旨在帮助visual basic和c#开发人员了解ADO.NET及相关技术的...

    自学VC++2010实例【003】;用ADO方法在ACCESS2010数据库中修改一条记录

    在VC++2010用ADO方法在ACCESS2010数据库中修改一条记录。【要在机器中安装Microsoft.ACE.OLEDB.12.0引擎,网上有下载的】。 本实例参照清华大学出版社的《Visual C++范例开发大全》,ISBN: 978-7-302-22624-6,作者:...

    ADO.NET高级编程

    ADO.NET是Microsoft最新推出的数据访问技术。作为.NET框架的一部分,ADO.NET绝不仅仅是前一版本ADO的简单升级。ADO.NET提供了一组.NET类,这些类不仅可以帮助我们对各种数据源进行高效访问,使我们能够对数据...

    ADO封装类ADO封装类

    ado ado ado ado ado ado ado adoado ado ado ado ado ado ado adoado adoado ado ado ado

Global site tag (gtag.js) - Google Analytics