精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>〓〓..技术文章连载..〓〓>>VB邮件>>vb免费邮件(5.2)

主题:vb免费邮件(5.2)
发信人: msnet()
整理人: cobe(1999-12-17 11:54:21), 站内信件
              vb邮件(5.2)
===================================



a CrystaIReports for VB5报表编程经验
  由于VB5本身无报表输出工具,因此在开发VB5数据库应用系统时,必须用第


三方报表书写器,通常采用VB5的企业版附带的Crystal Reports。在开发时不注


意两者的连接关系,经常会出现意想不到的问题,下面是笔者在开发VB5系统中的


几点经验:
  1.报表控件的引入
  Crystal Reports不是VB5标准控件,而是Active X控件。使用时,首先要点


击“工程→引用”菜单,引出部件窗口,再选Crystal Reports Control 4.6控件



  2.报表制作
  现象:报表设计时文字已排列整齐,但预览或打印往往出现偏差。
  措施:表名及列头文字不要直接输入文本,而改用“Insert→Text Field”


菜单插入文本字段,就可避免以上现象。
  3.数据输出
  现象:在数据输出时易犯错误,是因为在VB5中用SQL语句进行查询,然后打


印,目的是想把查询结果输出到报表上,但结果往往仍然是原表中的数据。也就


是说Crystal Reports并不认VB5的查询。
  措施:建一个临时表,查询先前删除表中的数据,再把查询结果放入到临时


表,再进行预览或打印。
  4.报表控件的使用及路径的指定
  现象:在一个表单中,如果需输出多个报表,放置多个报表控件。打印时会


出现“堆栈溢出”这样的致命错误。另外发布给用户时,需要设定任意路径,如


果只指定报表名路径,也会出现错误。
  措施:如果在一个表单上要打印多个报表,在打印时先定义数据文件名和报


表名,再打印。打印前设定时,不仅要设定报表文件路径,而且还要设定数据库


的路径。
  CrystalReport1.datafile(index)=App.path & “数据库名”
  CrystalReport1.reportfilename=App.path & “报表文件名”  
  5.设定预览窗口
  现象:预览窗口太小,用户必须点击最大化按钮才能覆盖整个屏幕。
  措施:
  CrystalReport1.WindowHeight=screen.Height
  CrystalReport1.WindowsHeight=screen.Windth
  CrystalReport1.WindotTop=0
  CrystalReport1.WindowLeft=0
  或者用:
  CrystalReport1.Windo 
wState=crptM
aximized (江苏 徐静文)

b VB 访 问 数 据 库 的 方 案 比 较 
 

用Visual Basic 访 问 数 据 库 有 许 多 可 供 选 择 的 方 案, 但 是 选


 择 那 种 方 案 更 能 使 开 发 队 伍 和 应 用 软 件 在 当 前 处 于 有 


利 位 置 并 且 适 应 将 来 的 发 展 方 向 呢 ? 这 些 解 决 方 案 各 有


 什 么 特 点 ? 本 文 将 说 明 这 些 问 题, 帮 助 使 用VB5 的 用 户 和


 准 备 使 用VB5 的 用 户 选 择 和 决 定 数 据 库 访 问 方 案。 

---- 当 今,RDO2.0 是Visual Basic 访 问 关 系 型ODBC 数 据 源 的 最 佳


 界 面 接 口, 就 如DAO/Jet 是Jet 和ISAM( 顺 序 索 引 查 找 方 法) 类


 型 数 据 源 首 选 的 访 问 接 口 一 样。 这 两 种 方 法 都 完 整 地 集


 成 于Visual Basic 中, 并 且 形 成 了Visual Basic 核 心 的 数 据 访 问


 策 略。RDO2.0 的 数 据 访 问 速 度 远 快 于RDO1.0 的 访 问 速 度, 并


 且RDO 和DAO 都 已 发 展 为 相 当 成 熟 的 技 术。 因 此 假 如 用 户 需


 要 访 问ODBC 数 据 源, 可 以 使 用RDO; 如 果 需 要 访 问ISAM 或Jet 


类 型 数 据 源, 那 么 就 使 用DAO/Jet。 

---- Active Data Objects(ADO) 作 为 另 一 种 可 供 选 择 的 技 术 出 现


, 正 在 逐 渐 代 替 其 他 数 据 访 问 接 口。 由 于RDO 同ADO 的 体 系


 结 构 非 常 相 似, 因 此 当 需 要 将RDO 数 据 接 口 转 换 为ADO 时,


 仍 可 以 使 用RDO 设 计 的 代 码。 

---- 有 人 曾 提 出 这 样 的 问 题: 是 否 现 在 就 使 用ADO? 虽 然VB5


 使 用ADO 的 数 据 访 问 接 口 是 可 能 的, 但 对 于 目 前ADO 的 使 用


 状 况, 将RDO2.0 或DAO3.5 同ADO 做 比 较 显 得 意 义 并 不 很 大。 所


 以 回 答 是: 如 果 感 觉 方 便, 还 是 尽 早 转 移 到ADO, 这 意 味 


着 应 用 软 件 对 各 种 数 据 访 问 接 口 将 继 续 予 以 支 持。ADO 是


 独 立 于 开 发 工 具 和 开 发 语 言 的 简 单 而 且 容 易 使 用 的 数 


据 接 口, 同ADO 相 比, 其 他 数 据 访 问 接 口 都 会 黯 然 失 色。 




---- 所 有 的 数 据 源 都 可 以 通 过ADO 来 访 问, 在 今 天 已 逐 渐 


成 为 现 实。 

VB 访 问 数 据 库 技 术 的 历 史
---- 综 观 过 去 几 年, 使 用Visual Basic 的 客 户 曾 设 计 出 数 不 


胜 数 的 程 序 和 组 件 来 建 立 商 务 解 决 方 案。 大 约80 % 以 上 


的 应 用 程 序 是 用 来 访 问 以 下 这 些 数 据 的:ASCII 文 本 文 件、


SQL 数 据 库 以 及 大 型 机 数 据 库。 早 期 的Visual Basic 数 据 访 问


 工 具 只 是 简 单 的ASCII 文 件 的 访 问 工 具, 极 少 数SQL Server 的


 前 端 应 用 程 序 是 使 用 鲜 为 人 知 的 数 据 接 口VBSQL 编 写 的。


 然 而, 在Visual Basic 3.0 时 代 许 多 用 户 强 调 需 转 移 访 问 包 


含 远 程 数 据 源 的ISAM 数 据, 为 此Microsoft 设 计 了Microsoft Jet 


Database Engine ( 或 简 称 为Jet) 和Data Access Object(DAO), 使 得V


isual Basic Access 开 发 人 员 很 容 易 地 同Jet 接 口。 直 至 前 两 年


, 对Visual Basic 和 其 使 用 者 的 需 求 又 包 含 了 更 快 的 访 问 远


 程 数 据 和 对ODBC 数 据 源 访 问 的 优 化。 

---- 当 讨 论 哪 种 技 术 是 最 佳 技 术 时, 需 要 注 意 两 点: 代 码


 的 重 用 和 开 发 者 实 现 所 选 择 的 数 据 库 访 问 方 案 的 能 力。


 设 计 者 常 常 为 实 现 或 追 求 一 种 更 特 别 的 性 能 而 使 用 有 


更 多 控 件 的 奇 异 方 案, 这 样 设 计 出 来 的 应 用 程 序 只 会 支


 持 起 来 更 复 杂 或 维 护 时 更 困 难。 开 发 人 员 和 他 们 的 管 理


 人 员 需 要 在Visual Basic 的 开 发 小 组 和 各 种 数 据 库 接 口 开 


发 小 组 中 注 意 避 免 这 种 趋 势。 这 些 小 组 协 调 努 力 简 化VB5


 中 的 数 据 访 问 接 口 会 使 程 序 的 安 全 性 和 速 度 更 好。VB5 也


 包 含 了 全 新 的 查 询 连 接 生 成 器, 即 User Connection 设 计 器,


 它 使 用 Visual Basic 新 的 ActiveX 设 计 器 体 系 结 构, 对 要 编 程


 的 数 据 访 问 提 供 设 计 时 的 支 持。 允 许 在 设 计 时 创 建 连 接


 和 查 询 对 象( 基 于 RDO rdoConnection 和 rdoQuery 对 象), 并 把 


这 些 连 接 和 查 询 对 象 当 作 工 程 级 对 象, 可 预 先 设 置 属 性


、 定 义 新 属 性 和 方 法 并 给 对 象 编 写 代 码 来 捕 捉 事 件。 

---- 这 不 仅 为 响 应 由 连 接 和 查 询 而 引 起 的 事 件, 而 且 为 


在 运 行 时 调 用 已 有 存 储 过 程 和 用 户 定 义 的 查 询 提 供 了 简


 单 的 方 法。 使 用User Connection 设 计 器 这 种 技 术, 代 码 可 减


 少10 倍, 性 能 却 没 有 任 何 损 失。 

---- 现 在 用VB5 来 建 服 务 器 端 组 件 或 前 端 应 用 程 序, 可 以 


使 用 的 数 据 库 接 口 方 案 至 少 有 九 种。 每 一 种 方 案 都 可 满


 足 用 户 特 定 的 需 要, 比 如 特 殊 的 数 据 源 和 用 户 开 发 的 技


 能 等。 

Visual Basic 访 问 数 据 库 的 现 状 
下 面 的 表 格( 表 一) 列 出 了 目 前 在VB5 中 有 效 的 数 据 访 问 接


 口 方 法, 一 部 分 是 简 单 的 应 用 程 序 接 口 界 面(APIs), 但 大


 部 分 是 组 件 对 象 模 型 界 面(COM)。 这 两 类 数 据 库 接 口 界 


面 事 实 上 在 任 何 一 种 开 发 语 言 中 都 包 括。 

表 一 

接口界面 访问对象 16/32位支持 
VBSQL 通过DB-Library访问微软的SQL Server 16位和32位 
DAO/Jet 本地的Jet/Access.MDB、顺序索引数据库(ISAM)和任何ODBC数据源。


 16位和32位 
DAO/ODBC Direct 任何一种ODBC数据源(经过RDO) 32位 
RDO 2.0 任何一种ODBC数据源(Level I或II) 32位 
ADO* 任何一种ODBC数据源和任何经过OLE DB界面接口的数据源 32位 

---- *ADO 不 包 括 在VB5 中, 目 前 的 许 多 网 络 产 品 支 持ADO 如:


IIS、Visual Studio 等, 也 会 发 行 在VB 的 下 一 版 本VB6 中。 

---- 上 表 列 出 了 用VB5 程 序 代 码 访 问 数 据 库 的 几 种 接 口 界


 面, 但 是 许 多 开 发 人 员 也 使 用 一 些 数 据 库 绑 定 的 控 件 来


 实 现 一 些 简 单 重 复 的 功 能, 如: 用 户 数 据 的 输 入、 显 示、


 筛 选 等 接 口 界 面。VB 也 支 持 对 多 种 数 据 源 访 问 的 控 件, 


这 些 控 件 在VB 和COM 界 面 接 口 之 间 起 着 媒 介 作 用。 这 些 控 


件 提 供 了 一 种 减 少 代 码 实 现 数 据 访 问 的 途 径, 该 方 法 简


 化 了 代 码 并 使 程 序 员 不 必 亲 自 处 理 检 索 和 更 新 数 据 的 


底 层 结 构 和 机 制。 它 赋 予 程 序 员 很 大 的 灵 活 性, 因 为 可 


以 使 用 同 样 的 对 象、 属 性 和 方 法 来 处 理 各 种 不 同 的 数 据


 库 格 式。 同 时, 如 果 从 一 种 数 据 库 格 式 变 到 另 一 种 格 式


( 例 如, 将 本 地 的 Microsoft Access 数 据 库 转 换 为 网 络 上 的 


SQL Server 数 据 库), 只 需 变 动 少 量 的 代 码 就 可 以 适 应 这 种


 改 变。 甚 至 可 以 创 建 这 样 的 应 用 程 序, 在 单 一 的 查 询 或


 报 表 中 连 接 来 自 多 个 不 同 数 据 库 的 表。

表 二 

数据绑定控件 访问对象 16/32位支持 
Data Corolor DAO/Jet数据界面接口 16位和32位 
Data Control/ODBC Direct DAO/ODBC Direct数据界面接口 32位 
RemoteData Control/RDC RDO数据界接口 32位 
Advanced Data Connector/ADC* ADO数据界面接口 32位 

---- *ADO 不 包 括 在VB5 中, 目 前 的 许 多 网 络 产 品 支 持ADO 如:


IIS、Visual Studio 等, 也 会 发 行 在VB 的 下 一 版 本VB6 中。 

---- 经 过 数 年 发 展,ODBC 技 术 日 臻 完 善, 已 成 为 访 问 远 程 


数 据 的 主 要 方 法, 而Jet 成 为 本 地Jet 和ISAM 数 据 接 口 的 首 选


 方 案。 虽 然 这 些 方 法 在 不 同 程 度 上 有 功 能 交 迭 的 地 方,


 在 论 证 选 用 数 据 库 访 问 的 方 法 时, 主 要 还 应 满 足 用 户 在


 特 殊 应 用 程 序 中 对 具 体 数 据 接 口 的 访 问。 

---- 并 不 是 所 有 人 对 数 据 访 问 中 的 一 些 缩 写 词 都 了 解。 


表 三 从VB 的 观 点 简 要 介 绍 这 些 缩 写 词 的 含 义 和 各 种 数 据


 访 问 方 法 的 功 能 比 较。 

Visual Basic 访 问 数 据 库 的 前 景 
---- 近 来 随 着Web 应 用 软 件 的 迅 速 发 展 和 现 有 数 据 存 储 形


 式 的 多 种 多 样,Visual Basic 访 问 数 据 库 的 解 决 方 案 面 临 诸


 如 快 速 提 取 分 布 于 企 业 内 部 和 外 部 有 用 商 业 信 息 等 的 


多 种 挑 战。 为 此Microsoft 提 出 一 种 新 的 数 据 库 访 问 策 略, 


即“ 统 一 数 据 访 问”(Universal Data Access) 的 策 略。“ 统 一 数


 据 访 问” 提 供 了 高 性 能 的 存 取 包 括 关 系 型 和 非 关 系 型 在


 内 的 多 种 数 据 源, 提 供 独 立 于 开 发 工 具 和 开 发 语 言 的 简


 单 的 编 程 接 口, 这 些 技 术 使 得 企 业 集 成 多 种 数 据 源、 选


 择 更 好 的 开 发 工 具、 应 用 软 件、 操 作 平 台、 建 立 容 易 维 


护 的 解 决 方 案 成 为 可 能。 

---- “ 统 一 数 据 访 问” 的 基 础 是Microsoft 的 数 据 访 问 组 件。


 这 些 组 件 包 括ActiveX Data Objects(ADO)、Remote Data Service(RDS,


 也 称“ 高 级 数 据 连 接 器 或”ADC)、OLE DB 和ODBC。 

 

表 三 

数据访问接口 功能及含义 
ADC 高级数据连接器(Advanced Data Connector):提供绑定ADO数据源到窗体的


数据绑定控件上。ADC主要是一种直接访问或者通过ADO访问远程OLE DB对象的一


种技术,它也支持主要应用在微软IE浏览器上的数据绑定控件。它是特地为Web上


的浏览器为基础的应用程序而设计的。 
ADO Active数据对象(Active Data Objects):ADO实际是一种提供访问各种数


据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口


。可以使用任何一种ODBC数据源,即不止适合于SQL Server、Oracle、Access等


数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件


。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数


据访问接口方法。 
DAO 数据访问对象(Data Access Objects):是一种面向对象的界面接口。通过D


AO/Jet功能可以访问ISAM数据库,使用DAO/ODBC Direct功能可以实现远程RDO功


能。使用DAO的程序编码非常简单,DAO提供丰富的游标(Cursor)类型的结果集


和非游标(Cursor-Less)类型的结果集,同DDL(数据描述语言)的功能很类似


。DAO模型是设计关系数据库系统结构的对象类的集合。它们提供了完成管理这样


一个系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引


,建立表间的关系,定位和查询数据库等工具。 
Jet 数据连接性引擎技术(Joint Engine Technology):是一种基于工作站通过


DAO的数据库访问机制。虽然可以通过微软Access提供的ODBC驱动程序访问Jet数


据库,但使用这些驱动程序在功能上有所限制。Jet机制有自己的查询和结果集处


理功能,并可对同种或异种数据源作查询处理。 
ODBC 开放式的数据库连接(Open Database Connectivity):是一种公认的关系


数据源的接口界面。它快而轻并且提供统一接口的界面,ODBC对任何数据源都未


作优化。 
ODBC Direct 是一种基于DAO对象的新的DAO模式,其方法和属性与RDO功能相同。


使用在有DAO代码存在的场合,可用来访问远程数据源。 
OLE DB 是一种底层数据访问界面接口。是用于第三方驱动程序商家开发输出数据


源到ADO-技术的应用程序或用于C++的开发者开发定制的数据库组件。OLE DB不


能被VB直接调用。 
RDC 远程数据访问控件(RemoteData Control):是一种对RDO数据绑定的控件。


可以输出特定的结果集到数据源控件。 
RDO 远程数据对象(RemoteData Objects):远程数据对象和集合为使用代码来创


建和操作一个远程ODBC数据库系统的各个部件提供了一个框架。对象和集合都具


有描述数据库的各个部件特征的属性以及用来操作这些部件的方法。可以在对象


和集合之间建立起关系,这些关系就代表了数据库系统的逻辑结构。RDO是ODBC 


API的一个浅层界面接口。是专为访问远程ODBC关系数据源而设计的。 
VBSQL 是Visual Basic结构化查询语言。是一种基于API的接口方法,几乎与C的


DB-Library API相同。VBSQL只支持微软的SQL Server。VBSQL快而且轻但不支持


对象界面。 
===================================



欢迎投稿  [email protected]
===================================




请订阅:
http://server.com/WebApps/mail-list-unsubscribe.cgi?id=16852


---- 当 今,RDO2.0 是Visual Basic 访 问 关 系 型ODBC 数 据 源 的 最 佳

 界 面 接 口, 就 如DAO/Jet 是Jet 和ISAM( 顺 序 索 引 查 找 方 法) 类

 型 数 据 源 首 选 的 访 问 接 口 一 样。 这 两 种 方 法 都 完 整 地 集

 成 于Visual Basic 中, 并 且 形 成 了Visual Basic 核 心 的 数 据 访 问

 策 略。RDO2.0 的 数 据 访 问 速 度 远 快 于RDO1.0 的 访 问 速 度, 并

 且RDO 和DAO 都 已 发 展 为 相 当 成 熟 的 技 术。 因 此 假 如 用 户 需

 要 访 问ODBC 数 据 源, 可 以 使 用RDO; 如 果 需 要 访 问ISAM 或Jet 

类 型 数 据 源, 那 么 就 使 用DAO/Jet。 

---- Active Data Objects(ADO) 作 为 另 一 种 可 供 选 择 的 技 术 出 现

, 正 在 逐 渐 代 替 其 他 数 据 访 问 接 口。 由 于RDO 同ADO 的 体 系

 结 构 非 常 相 似, 因 此 当 需 要 将RDO 数 据 接 口 转 换 为ADO 时,

 仍 可 以 使 用RDO 设 计 的 代 码。 

---- 有 人 曾 提 出 这 样 的 问 题: 是 否 现 在 就 使 用ADO? 虽 然VB5

 使 用ADO 的 数 据 访 问 接 口 是 可 能 的, 但 对 于 目 前ADO 的 使 用

 状 况, 将RDO2.0 或DAO3.5 同ADO 做 比 较 显 得 意 义 并 不 很 大。 所

 以 回 答 是: 如 果 感 觉 方 便, 还 是 尽 早 转 移 到ADO, 这 意 味 

着 应 用 软 件 对 各 种 数 据 访 问 接 口 将 继 续 予 以 支 持。ADO 是

 独 立 于 开 发 工 具 和 开 发 语 言 的 简 单 而 且 容 易 使 用 的 数 

据 接 口, 同ADO 相 比, 其 他 数 据 访 问 接 口 都 会 黯 然 失 色。 



---- 所 有 的 数 据 源 都 可 以 通 过ADO 来 访 问, 在 今 天 已 逐 渐 

成 为 现 实。 

VB 访 问 数 据 库 技 术 的 历 史
---- 综 观 过 去 几 年, 使 用Visual Basic 的 客 户 曾 设 计 出 数 不 

胜 数 的 程 序 和 组 件 来 建 立 商 务 解 决 方 案。 大 约80 % 以 上 

的 应 用 程 序 是 用 来 访 问 以 下 这 些 数 据 的:ASCII 文 本 文 件、

SQL 数 据 库 以 及 大 型 机 数 据 库。 早 期 的Visual Basic 数 据 访 问

 工 具 只 是 简 单 的ASCII 文 件 的 访 问 工 具, 极 少 数SQL Server 的

 前 端 应 用 程 序 是 使 用 鲜 为 人 知 的 数 据 接 口VBSQL 编 写 的。

 然 而, 在Visual Basic 3.0 时 代 许 多 用 户 强 调 需 转 移 访 问 包 

含 远 程 数 据 源 的ISAM 数 据, 为 此Microsoft 设 计 了Microsoft Jet 

Database Engine ( 或 简 称 为Jet) 和Data Access Object(DAO), 使 得V

isual Basic Access 开 发 人 员 很 容 易 地 同Jet 接 口。 直 至 前 两 年

, 对Visual Basic 和 其 使 用 者 的 需 求 又 包 含 了 更 快 的 访 问 远

 程 数 据 和 对ODBC 数 据 源 访 问 的 优 化。 

---- 当 讨 论 哪 种 技 术 是 最 佳 技 术 时, 需 要 注 意 两 点: 代 码

 的 重 用 和 开 发 者 实 现 所 选 择 的 数 据 库 访 问 方 案 的 能 力。

 设 计 者 常 常 为 实 现 或 追 求 一 种 更 特 别 的 性 能 而 使 用 有 

更 多 控 件 的 奇 异 方 案, 这 样 设 计 出 来 的 应 用 程 序 只 会 支

 持 起 来 更 复 杂 或 维 护 时 更 困 难。 开 发 人 员 和 他 们 的 管 理

 人 员 需 要 在Visual Basic 的 开 发 小 组 和 各 种 数 据 库 接 口 开 

发 小 组 中 注 意 避 免 这 种 趋 势。 这 些 小 组 协 调 努 力 简 化VB5

 中 的 数 据 访 问 接 口 会 使 程 序 的 安 全 性 和 速 度 更 好。VB5 也

 包 含 了 全 新 的 查 询 连 接 生 成 器, 即 User Connection 设 计 器,

 它 使 用 Visual Basic 新 的 ActiveX 设 计 器 体 系 结 构, 对 要 编 程

 的 数 据 访 问 提 供 设 计 时 的 支 持。 允 许 在 设 计 时 创 建 连 接

 和 查 询 对 象( 基 于 RDO rdoConnection 和 rdoQuery 对 象), 并 把 

这 些 连 接 和 查 询 对 象 当 作 工 程 级 对 象, 可 预 先 设 置 属 性

、 定 义 新 属 性 和 方 法 并 给 对 象 编 写 代 码 来 捕 捉 事 件。 

---- 这 不 仅 为 响 应 由 连 接 和 查 询 而 引 起 的 事 件, 而 且 为 

在 运 行 时 调 用 已 有 存 储 过 程 和 用 户 定 义 的 查 询 提 供 了 简

 单 的 方 法。 使 用User Connection 设 计 器 这 种 技 术, 代 码 可 减

 少10 倍, 性 能 却 没 有 任 何 损 失。 

---- 现 在 用VB5 来 建 服 务 器 端 组 件 或 前 端 应 用 程 序, 可 以 

使 用 的 数 据 库 接 口 方 案 至 少 有 九 种。 每 一 种 方 案 都 可 满

 足 用 户 特 定 的 需 要, 比 如 特 殊 的 数 据 源 和 用 户 开 发 的 技

 能 等。 

Visual Basic 访 问 数 据 库 的 现 状 
下 面 的 表 格( 表 一) 列 出 了 目 前 在VB5 中 有 效 的 数 据 访 问 接

 口 方 法, 一 部 分 是 简 单 的 应 用 程 序 接 口 界 面(APIs), 但 大

 部 分 是 组 件 对 象 模 型 界 面(COM)。 这 两 类 数 据 库 接 口 界 

面 事 实 上 在 任 何 一 种 开 发 语 言 中 都 包 括。 

表 一 

接口界面 访问对象 16/32位支持 
VBSQL 通过DB-Library访问微软的SQL Server 16位和32位 
DAO/Jet 本地的Jet/Access.MDB、顺序索引数据库(ISAM)和任何ODBC数据源。

 16位和32位 
DAO/ODBC Direct 任何一种ODBC数据源(经过RDO) 32位 
RDO 2.0 任何一种ODBC数据源(Level I或II) 32位 
ADO* 任何一种ODBC数据源和任何经过OLE DB界面接口的数据源 32位 

---- *ADO 不 包 括 在VB5 中, 目 前 的 许 多 网 络 产 品 支 持ADO 如:

IIS、Visual Studio 等, 也 会 发 行 在VB 的 下 一 版 本VB6 中。 

---- 上 表 列 出 了 用VB5 程 序 代 码 访 问 数 据 库 的 几 种 接 口 界

 面, 但 是 许 多 开 发 人 员 也 使 用 一 些 数 据 库 绑 定 的 控 件 来

 实 现 一 些 简 单 重 复 的 功 能, 如: 用 户 数 据 的 输 入、 显 示、

 筛 选 等 接 口 界 面。VB 也 支 持 对 多 种 数 据 源 访 问 的 控 件, 

这 些 控 件 在VB 和COM 界 面 接 口 之 间 起 着 媒 介 作 用。 这 些 控 

件 提 供 了 一 种 减 少 代 码 实 现 数 据 访 问 的 途 径, 该 方 法 简

 化 了 代 码 并 使 程 序 员 不 必 亲 自 处 理 检 索 和 更 新 数 据 的 

底 层 结 构 和 机 制。 它 赋 予 程 序 员 很 大 的 灵 活 性, 因 为 可 

以 使 用 同 样 的 对 象、 属 性 和 方 法 来 处 理 各 种 不 同 的 数 据

 库 格 式。 同 时, 如 果 从 一 种 数 据 库 格 式 变 到 另 一 种 格 式

( 例 如, 将 本 地 的 Microsoft Access 数 据 库 转 换 为 网 络 上 的 

SQL Server 数 据 库), 只 需 变 动 少 量 的 代 码 就 可 以 适 应 这 种

 改 变。 甚 至 可 以 创 建 这 样 的 应 用 程 序, 在 单 一 的 查 询 或

 报 表 中 连 接 来 自 多 个 不 同 数 据 库 的 表。

表 二 

数据绑定控件 访问对象 16/32位支持 
Data Corolor DAO/Jet数据界面接口 16位和32位 
Data Control/ODBC Direct DAO/ODBC Direct数据界面接口 32位 
RemoteData Control/RDC RDO数据界接口 32位 
Advanced Data Connector/ADC* ADO数据界面接口 32位 

---- *ADO 不 包 括 在VB5 中, 目 前 的 许 多 网 络 产 品 支 持ADO 如:

IIS、Visual Studio 等, 也 会 发 行 在VB 的 下 一 版 本VB6 中。 

---- 经 过 数 年 发 展,ODBC 技 术 日 臻 完 善, 已 成 为 访 问 远 程 

数 据 的 主 要 方 法, 而Jet 成 为 本 地Jet 和ISAM 数 据 接 口 的 首 选

 方 案。 虽 然 这 些 方 法 在 不 同 程 度 上 有 功 能 交 迭 的 地 方,

 在 论 证 选 用 数 据 库 访 问 的 方 法 时, 主 要 还 应 满 足 用 户 在

 特 殊 应 用 程 序 中 对 具 体 数 据 接 口 的 访 问。 

---- 并 不 是 所 有 人 对 数 据 访 问 中 的 一 些 缩 写 词 都 了 解。 

表 三 从VB 的 观 点 简 要 介 绍 这 些 缩 写 词 的 含 义 和 各 种 数 据

 访 问 方 法 的 功 能 比 较。 

Visual Basic 访 问 数 据 库 的 前 景 
---- 近 来 随 着Web 应 用 软 件 的 迅 速 发 展 和 现 有 数 据 存 储 形

 式 的 多 种 多 样,Visual Basic 访 问 数 据 库 的 解 决 方 案 面 临 诸

 如 快 速 提 取 分 布 于 企 业 内 部 和 外 部 有 用 商 业 信 息 等 的 

多 种 挑 战。 为 此Microsoft 提 出 一 种 新 的 数 据 库 访 问 策 略, 

即“ 统 一 数 据 访 问”(Universal Data Access) 的 策 略。“ 统 一 数

 据 访 问” 提 供 了 高 性 能 的 存 取 包 括 关 系 型 和 非 关 系 型 在

 内 的 多 种 数 据 源, 提 供 独 立 于 开 发 工 具 和 开 发 语 言 的 简

 单 的 编 程 接 口, 这 些 技 术 使 得 企 业 集 成 多 种 数 据 源、 选

 择 更 好 的 开 发 工 具、 应 用 软 件、 操 作 平 台、 建 立 容 易 维 

护 的 解 决 方 案 成 为 可 能。 

---- “ 统 一 数 据 访 问” 的 基 础 是Microsoft 的 数 据 访 问 组 件。

 这 些 组 件 包 括ActiveX Data Objects(ADO)、Remote Data Service(RDS,

 也 称“ 高 级 数 据 连 接 器 或”ADC)、OLE DB 和ODBC。 

 

表 三 

数据访问接口 功能及含义 
ADC 高级数据连接器(Advanced Data Connector):提供绑定ADO数据源到窗体的

数据绑定控件上。ADC主要是一种直接访问或者通过ADO访问远程OLE DB对象的一

种技术,它也支持主要应用在微软IE浏览器上的数据绑定控件。它是特地为Web上

的浏览器为基础的应用程序而设计的。 
ADO Active数据对象(Active Data Objects):ADO实际是一种提供访问各种数

据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口

。可以使用任何一种ODBC数据源,即不止适合于SQL Server、Oracle、Access等

数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件

。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数

据访问接口方法。 
DAO 数据访问对象(Data Access Objects):是一种面向对象的界面接口。通过D

AO/Jet功能可以访问ISAM数据库,使用DAO/ODBC Direct功能可以实现远程RDO功

能。使用DAO的程序编码非常简单,DAO提供丰富的游标(Cursor)类型的结果集

和非游标(Cursor-Less)类型的结果集,同DDL(数据描述语言)的功能很类似

。DAO模型是设计关系数据库系统结构的对象类的集合。它们提供了完成管理这样

一个系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引

,建立表间的关系,定位和查询数据库等工具。 
Jet 数据连接性引擎技术(Joint Engine Technology):是一种基于工作站通过

DAO的数据库访问机制。虽然可以通过微软Access提供的ODBC驱动程序访问Jet数

据库,但使用这些驱动程序在功能上有所限制。Jet机制有自己的查询和结果集处

理功能,并可对同种或异种数据源作查询处理。 
ODBC 开放式的数据库连接(Open Database Connectivity):是一种公认的关系

数据源的接口界面。它快而轻并且提供统一接口的界面,ODBC对任何数据源都未

作优化。 
ODBC Direct 是一种基于DAO对象的新的DAO模式,其方法和属性与RDO功能相同。

使用在有DAO代码存在的场合,可用来访问远程数据源。 
OLE DB 是一种底层数据访问界面接口。是用于第三方驱动程序商家开发输出数据

源到ADO-技术的应用程序或用于C++的开发者开发定制的数据库组件。OLE DB不

能被VB直接调用。 
RDC 远程数据访问控件(RemoteData Control):是一种对RDO数据绑定的控件。

可以输出特定的结果集到数据源控件。 
RDO 远程数据对象(RemoteData Objects):远程数据对象和集合为使用代码来创

建和操作一个远程ODBC数据库系统的各个部件提供了一个框架。对象和集合都具

有描述数据库的各个部件特征的属性以及用来操作这些部件的方法。可以在对象

和集合之间建立起关系,这些关系就代表了数据库系统的逻辑结构。RDO是ODBC 

API的一个浅层界面接口。是专为访问远程ODBC关系数据源而设计的。 
VBSQL 是Visual Basic结构化查询语言。是一种基于API的接口方法,几乎与C的

DB-Library API相同。VBSQL只支持微软的SQL Server。VBSQL快而且轻但不支持

对象界面。 
===================================


欢迎投稿  [email protected]
===================================



请订阅:
http://server.com/WebApps/mail-list-subscribe.cgi?id=16852


---- 当 今,RDO2.0 是Visual Basic 访 问 关 系 型ODBC 数 据 源 的 最 佳

 界 面 接 口, 就 如DAO/Jet 是Jet 和ISAM( 顺 序 索 引 查 找 方 法) 类

 型 数 据 源 首 选 的 访 问 接 口 一 样。 这 两 种 方 法 都 完 整 地 集

 成 于Visual Basic 中, 并 且 形 成 了Visual Basic 核 心 的 数 据 访 问

 策 略。RDO2.0 的 数 据 访 问 速 度 远 快 于RDO1.0 的 访 问 速 度, 并

 且RDO 和DAO 都 已 发 展 为 相 当 成 熟 的 技 术。 因 此 假 如 用 户 需

 要 访 问ODBC 数 据 源, 可 以 使 用RDO; 如 果 需 要 访 问ISAM 或Jet 

类 型 数 据 源, 那 么 就 使 用DAO/Jet。 

---- Active Data Objects(ADO) 作 为 另 一 种 可 供 选 择 的 技 术 出 现

, 正 在 逐 渐 代 替 其 他 数 据 访 问 接 口。 由 于RDO 同ADO 的 体 系

 结 构 非 常 相 似, 因 此 当 需 要 将RDO 数 据 接 口 转 换 为ADO 时,

 仍 可 以 使 用RDO 设 计 的 代 码。 

---- 有 人 曾 提 出 这 样 的 问 题: 是 否 现 在 就 使 用ADO? 虽 然VB5

 使 用ADO 的 数 据 访 问 接 口 是 可 能 的, 但 对 于 目 前ADO 的 使 用

 状 况, 将RDO2.0 或DAO3.5 同ADO 做 比 较 显 得 意 义 并 不 很 大。 所

 以 回 答 是: 如 果 感 觉 方 便, 还 是 尽 早 转 移 到ADO, 这 意 味 

着 应 用 软 件 对 各 种 数 据 访 问 接 口 将 继 续 予 以 支 持。ADO 是

 独 立 于 开 发 工 具 和 开 发 语 言 的 简 单 而 且 容 易 使 用 的 数 

据 接 口, 同ADO 相 比, 其 他 数 据 访 问 接 口 都 会 黯 然 失 色。 



---- 所 有 的 数 据 源 都 可 以 通 过ADO 来 访 问, 在 今 天 已 逐 渐 

成 为 现 实。 

VB 访 问 数 据 库 技 术 的 历 史
---- 综 观 过 去 几 年, 使 用Visual Basic 的 客 户 曾 设 计 出 数 不 

胜 数 的 程 序 和 组 件 来 建 立 商 务 解 决 方 案。 大 约80 % 以 上 

的 应 用 程 序 是 用 来 访 问 以 下 这 些 数 据 的:ASCII 文 本 文 件、

SQL 数 据 库 以 及 大 型 机 数 据 库。 早 期 的Visual Basic 数 据 访 问

 工 具 只 是 简 单 的ASCII 文 件 的 访 问 工 具, 极 少 数SQL Server 的

 前 端 应 用 程 序 是 使 用 鲜 为 人 知 的 数 据 接 口VBSQL 编 写 的。

 然 而, 在Visual Basic 3.0 时 代 许 多 用 户 强 调 需 转 移 访 问 包 

含 远 程 数 据 源 的ISAM 数 据, 为 此Microsoft 设 计 了Microsoft Jet 

Database Engine ( 或 简 称 为Jet) 和Data Access Object(DAO), 使 得V

isual Basic Access 开 发 人 员 很 容 易 地 同Jet 接 口。 直 至 前 两 年

, 对Visual Basic 和 其 使 用 者 的 需 求 又 包 含 了 更 快 的 访 问 远

 程 数 据 和 对ODBC 数 据 源 访 问 的 优 化。 

---- 当 讨 论 哪 种 技 术 是 最 佳 技 术 时, 需 要 注 意 两 点: 代 码

 的 重 用 和 开 发 者 实 现 所 选 择 的 数 据 库 访 问 方 案 的 能 力。

 设 计 者 常 常 为 实 现 或 追 求 一 种 更 特 别 的 性 能 而 使 用 有 

更 多 控 件 的 奇 异 方 案, 这 样 设 计 出 来 的 应 用 程 序 只 会 支

 持 起 来 更 复 杂 或 维 护 时 更 困 难。 开 发 人 员 和 他 们 的 管 理

 人 员 需 要 在Visual Basic 的 开 发 小 组 和 各 种 数 据 库 接 口 开 

发 小 组 中 注 意 避 免 这 种 趋 势。 这 些 小 组 协 调 努 力 简 化VB5

 中 的 数 据 访 问 接 口 会 使 程 序 的 安 全 性 和 速 度 更 好。VB5 也

 包 含 了 全 新 的 查 询 连 接 生 成 器, 即 User Connection 设 计 器,

 它 使 用 Visual Basic 新 的 ActiveX 设 计 器 体 系 结 构, 对 要 编 程

 的 数 据 访 问 提 供 设 计 时 的 支 持。 允 许 在 设 计 时 创 建 连 接

 和 查 询 对 象( 基 于 RDO rdoConnection 和 rdoQuery 对 象), 并 把 

这 些 连 接 和 查 询 对 象 当 作 工 程 级 对 象, 可 预 先 设 置 属 性

、 定 义 新 属 性 和 方 法 并 给 对 象 编 写 代 码 来 捕 捉 事 件。 

---- 这 不 仅 为 响 应 由 连 接 和 查 询 而 引 起 的 事 件, 而 且 为 

在 运 行 时 调 用 已 有 存 储 过 程 和 用 户 定 义 的 查 询 提 供 了 简

 单 的 方 法。 使 用User Connection 设 计 器 这 种 技 术, 代 码 可 减

 少10 倍, 性 能 却 没 有 任 何 损 失。 

---- 现 在 用VB5 来 建 服 务 器 端 组 件 或 前 端 应 用 程 序, 可 以 

使 用 的 数 据 库 接 口 方 案 至 少 有 九 种。 每 一 种 方 案 都 可 满

 足 用 户 特 定 的 需 要, 比 如 特 殊 的 数 据 源 和 用 户 开 发 的 技

 能 等。 

Visual Basic 访 问 数 据 库 的 现 状 
下 面 的 表 格( 表 一) 列 出 了 目 前 在VB5 中 有 效 的 数 据 访 问 接

 口 方 法, 一 部 分 是 简 单 的 应 用 程 序 接 口 界 面(APIs), 但 大

 部 分 是 组 件 对 象 模 型 界 面(COM)。 这 两 类 数 据 库 接 口 界 

面 事 实 上 在 任 何 一 种 开 发 语 言 中 都 包 括。 

表 一 

接口界面 访问对象 16/32位支持 
VBSQL 通过DB-Library访问微软的SQL Server 16位和32位 
DAO/Jet 本地的Jet/Access.MDB、顺序索引数据库(ISAM)和任何ODBC数据源。

 16位和32位 
DAO/ODBC Direct 任何一种ODBC数据源(经过RDO) 32位 
RDO 2.0 任何一种ODBC数据源(Level I或II) 32位 
ADO* 任何一种ODBC数据源和任何经过OLE DB界面接口的数据源 32位 

---- *ADO 不 包 括 在VB5 中, 目 前 的 许 多 网 络 产 品 支 持ADO 如:

IIS、Visual Studio 等, 也 会 发 行 在VB 的 下 一 版 本VB6 中。 

---- 上 表 列 出 了 用VB5 程 序 代 码 访 问 数 据 库 的 几 种 接 口 界

 面, 但 是 许 多 开 发 人 员 也 使 用 一 些 数 据 库 绑 定 的 控 件 来

 实 现 一 些 简 单 重 复 的 功 能, 如: 用 户 数 据 的 输 入、 显 示、

 筛 选 等 接 口 界 面。VB 也 支 持 对 多 种 数 据 源 访 问 的 控 件, 

这 些 控 件 在VB 和COM 界 面 接 口 之 间 起 着 媒 介 作 用。 这 些 控 

件 提 供 了 一 种 减 少 代 码 实 现 数 据 访 问 的 途 径, 该 方 法 简

 化 了 代 码 并 使 程 序 员 不 必 亲 自 处 理 检 索 和 更 新 数 据 的 

底 层 结 构 和 机 制。 它 赋 予 程 序 员 很 大 的 灵 活 性, 因 为 可 

以 使 用 同 样 的 对 象、 属 性 和 方 法 来 处 理 各 种 不 同 的 数 据

 库 格 式。 同 时, 如 果 从 一 种 数 据 库 格 式 变 到 另 一 种 格 式

( 例 如, 将 本 地 的 Microsoft Access 数 据 库 转 换 为 网 络 上 的 

SQL Server 数 据 库), 只 需 变 动 少 量 的 代 码 就 可 以 适 应 这 种

 改 变。 甚 至 可 以 创 建 这 样 的 应 用 程 序, 在 单 一 的 查 询 或

 报 表 中 连 接 来 自 多 个 不 同 数 据 库 的 表。

表 二 

数据绑定控件 访问对象 16/32位支持 
Data Corolor DAO/Jet数据界面接口 16位和32位 
Data Control/ODBC Direct DAO/ODBC Direct数据界面接口 32位 
RemoteData Control/RDC RDO数据界接口 32位 
Advanced Data Connector/ADC* ADO数据界面接口 32位 

---- *ADO 不 包 括 在VB5 中, 目 前 的 许 多 网 络 产 品 支 持ADO 如:

IIS、Visual Studio 等, 也 会 发 行 在VB 的 下 一 版 本VB6 中。 

---- 经 过 数 年 发 展,ODBC 技 术 日 臻 完 善, 已 成 为 访 问 远 程 

数 据 的 主 要 方 法, 而Jet 成 为 本 地Jet 和ISAM 数 据 接 口 的 首 选

 方 案。 虽 然 这 些 方 法 在 不 同 程 度 上 有 功 能 交 迭 的 地 方,

 在 论 证 选 用 数 据 库 访 问 的 方 法 时, 主 要 还 应 满 足 用 户 在

 特 殊 应 用 程 序 中 对 具 体 数 据 接 口 的 访 问。 

---- 并 不 是 所 有 人 对 数 据 访 问 中 的 一 些 缩 写 词 都 了 解。 

表 三 从VB 的 观 点 简 要 介 绍 这 些 缩 写 词 的 含 义 和 各 种 数 据

 访 问 方 法 的 功 能 比 较。 

Visual Basic 访 问 数 据 库 的 前 景 
---- 近 来 随 着Web 应 用 软 件 的 迅 速 发 展 和 现 有 数 据 存 储 形

 式 的 多 种 多 样,Visual Basic 访 问 数 据 库 的 解 决 方 案 面 临 诸

 如 快 速 提 取 分 布 于 企 业 内 部 和 外 部 有 用 商 业 信 息 等 的 

多 种 挑 战。 为 此Microsoft 提 出 一 种 新 的 数 据 库 访 问 策 略, 

即“ 统 一 数 据 访 问”(Universal Data Access) 的 策 略。“ 统 一 数

 据 访 问” 提 供 了 高 性 能 的 存 取 包 括 关 系 型 和 非 关 系 型 在

 内 的 多 种 数 据 源, 提 供 独 立 于 开 发 工 具 和 开 发 语 言 的 简

 单 的 编 程 接 口, 这 些 技 术 使 得 企 业 集 成 多 种 数 据 源、 选

 择 更 好 的 开 发 工 具、 应 用 软 件、 操 作 平 台、 建 立 容 易 维 

护 的 解 决 方 案 成 为 可 能。 

---- “ 统 一 数 据 访 问” 的 基 础 是Microsoft 的 数 据 访 问 组 件。

 这 些 组 件 包 括ActiveX Data Objects(ADO)、Remote Data Service(RDS,

 也 称“ 高 级 数 据 连 接 器 或”ADC)、OLE DB 和ODBC。 

 

表 三 

数据访问接口 功能及含义 
ADC 高级数据连接器(Advanced Data Connector):提供绑定ADO数据源到窗体的

数据绑定控件上。ADC主要是一种直接访问或者通过ADO访问远程OLE DB对象的一

种技术,它也支持主要应用在微软IE浏览器上的数据绑定控件。它是特地为Web上

的浏览器为基础的应用程序而设计的。 
ADO Active数据对象(Active Data Objects):ADO实际是一种提供访问各种数

据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口

。可以使用任何一种ODBC数据源,即不止适合于SQL Server、Oracle、Access等

数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件

。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数

据访问接口方法。 
DAO 数据访问对象(Data Access Objects):是一种面向对象的界面接口。通过D

AO/Jet功能可以访问ISAM数据库,使用DAO/ODBC Direct功能可以实现远程RDO功

能。使用DAO的程序编码非常简单,DAO提供丰富的游标(Cursor)类型的结果集

和非游标(Cursor-Less)类型的结果集,同DDL(数据描述语言)的功能很类似

。DAO模型是设计关系数据库系统结构的对象类的集合。它们提供了完成管理这样

一个系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引

,建立表间的关系,定位和查询数据库等工具。 
Jet 数据连接性引擎技术(Joint Engine Technology):是一种基于工作站通过

DAO的数据库访问机制。虽然可以通过微软Access提供的ODBC驱动程序访问Jet数

据库,但使用这些驱动程序在功能上有所限制。Jet机制有自己的查询和结果集处

理功能,并可对同种或异种数据源作查询处理。 
ODBC 开放式的数据库连接(Open Database Connectivity):是一种公认的关系

数据源的接口界面。它快而轻并且提供统一接口的界面,ODBC对任何数据源都未

作优化。 
ODBC Direct 是一种基于DAO对象的新的DAO模式,其方法和属性与RDO功能相同。

使用在有DAO代码存在的场合,可用来访问远程数据源。 
OLE DB 是一种底层数据访问界面接口。是用于第三方驱动程序商家开发输出数据

源到ADO-技术的应用程序或用于C++的开发者开发定制的数据库组件。OLE DB不

能被VB直接调用。 
RDC 远程数据访问控件(RemoteData Control):是一种对RDO数据绑定的控件。

可以输出特定的结果集到数据源控件。 
RDO 远程数据对象(RemoteData Objects):远程数据对象和集合为使用代码来创

建和操作一个远程ODBC数据库系统的各个部件提供了一个框架。对象和集合都具

有描述数据库的各个部件特征的属性以及用来操作这些部件的方法。可以在对象

和集合之间建立起关系,这些关系就代表了数据库系统的逻辑结构。RDO是ODBC 

API的一个浅层界面接口。是专为访问远程ODBC关系数据源而设计的。 
VBSQL 是Visual Basic结构化查询语言。是一种基于API的接口方法,几乎与C的

DB-Library API相同。VBSQL只支持微软的SQL Server。VBSQL快而且轻但不支持

对象界面。 
===================================


欢迎投稿  [email protected]
===================================



请订阅:
http://server.com/WebApps/mail-list-unsubscribe.cgi?id=16852


---- 当 今,RDO2.0 是Visual Basic 访 问 关 系 型ODBC 数 据 源 的 最 佳
 界 面 接 口, 就 如DAO/Jet 是Jet 和ISAM( 顺 序 索 引 查 找 方 法) 类
 型 数 据 源 首 选 的 访 问 接 口 一 样。 这 两 种 方 法 都 完 整 地 集
 成 于Visual Basic 中, 并 且 形 成 了Visual Basic 核 心 的 数 据 访 问
 策 略。RDO2.0 的 数 据 访 问 速 度 远 快 于RDO1.0 的 访 问 速 度, 并
 且RDO 和DAO 都 已 发 展 为 相 当 成 熟 的 技 术。 因 此 假 如 用 户 需
 要 访 问ODBC 数 据 源, 可 以 使 用RDO; 如 果 需 要 访 问ISAM 或Jet 
类 型 数 据 源, 那 么 就 使 用DAO/Jet。 

---- Active Data Objects(ADO) 作 为 另 一 种 可 供 选 择 的 技 术 出 现
, 正 在 逐 渐 代 替 其 他 数 据 访 问 接 口。 由 于RDO 同ADO 的 体 系
 结 构 非 常 相 似, 因 此 当 需 要 将RDO 数 据 接 口 转 换 为ADO 时,
 仍 可 以 使 用RDO 设 计 的 代 码。 

---- 有 人 曾 提 出 这 样 的 问 题: 是 否 现 在 就 使 用ADO? 虽 然VB5
 使 用ADO 的 数 据 访 问 接 口 是 可 能 的, 但 对 于 目 前ADO 的 使 用
 状 况, 将RDO2.0 或DAO3.5 同ADO 做 比 较 显 得 意 义 并 不 很 大。 所
 以 回 答 是: 如 果 感 觉 方 便, 还 是 尽 早 转 移 到ADO, 这 意 味 
着 应 用 软 件 对 各 种 数 据 访 问 接 口 将 继 续 予 以 支 持。ADO 是
 独 立 于 开 发 工 具 和 开 发 语 言 的 简 单 而 且 容 易 使 用 的 数 
据 接 口, 同ADO 相 比, 其 他 数 据 访 问 接 口 都 会 黯 然 失 色。 


---- 所 有 的 数 据 源 都 可 以 通 过ADO 来 访 问, 在 今 天 已 逐 渐 
成 为 现 实。 

VB 访 问 数 据 库 技 术 的 历 史
---- 综 观 过 去 几 年, 使 用Visual Basic 的 客 户 曾 设 计 出 数 不 
胜 数 的 程 序 和 组 件 来 建 立 商 务 解 决 方 案。 大 约80 % 以 上 
的 应 用 程 序 是 用 来 访 问 以 下 这 些 数 据 的:ASCII 文 本 文 件、
SQL 数 据 库 以 及 大 型 机 数 据 库。 早 期 的Visual Basic 数 据 访 问
 工 具 只 是 简 单 的ASCII 文 件 的 访 问 工 具, 极 少 数SQL Server 的
 前 端 应 用 程 序 是 使 用 鲜 为 人 知 的 数 据 接 口VBSQL 编 写 的。
 然 而, 在Visual Basic 3.0 时 代 许 多 用 户 强 调 需 转 移 访 问 包 
含 远 程 数 据 源 的ISAM 数 据, 为 此Microsoft 设 计 了Microsoft Jet 
Database Engine ( 或 简 称 为Jet) 和Data Access Object(DAO), 使 得V
isual Basic Access 开 发 人 员 很 容 易 地 同Jet 接 口。 直 至 前 两 年
, 对Visual Basic 和 其 使 用 者 的 需 求 又 包 含 了 更 快 的 访 问 远
 程 数 据 和 对ODBC 数 据 源 访 问 的 优 化。 

---- 当 讨 论 哪 种 技 术 是 最 佳 技 术 时, 需 要 注 意 两 点: 代 码
 的 重 用 和 开 发 者 实 现 所 选 择 的 数 据 库 访 问 方 案 的 能 力。
 设 计 者 常 常 为 实 现 或 追 求 一 种 更 特 别 的 性 能 而 使 用 有 
更 多 控 件 的 奇 异 方 案, 这 样 设 计 出 来 的 应 用 程 序 只 会 支
 持 起 来 更 复 杂 或 维 护 时 更 困 难。 开 发 人 员 和 他 们 的 管 理
 人 员 需 要 在Visual Basic 的 开 发 小 组 和 各 种 数 据 库 接 口 开 
发 小 组 中 注 意 避 免 这 种 趋 势。 这 些 小 组 协 调 努 力 简 化VB5
 中 的 数 据 访 问 接 口 会 使 程 序 的 安 全 性 和 速 度 更 好。VB5 也
 包 含 了 全 新 的 查 询 连 接 生 成 器, 即 User Connection 设 计 器,
 它 使 用 Visual Basic 新 的 ActiveX 设 计 器 体 系 结 构, 对 要 编 程
 的 数 据 访 问 提 供 设 计 时 的 支 持。 允 许 在 设 计 时 创 建 连 接
 和 查 询 对 象( 基 于 RDO rdoConnection 和 rdoQuery 对 象), 并 把 
这 些 连 接 和 查 询 对 象 当 作 工 程 级 对 象, 可 预 先 设 置 属 性
、 定 义 新 属 性 和 方 法 并 给 对 象 编 写 代 码 来 捕 捉 事 件。 

---- 这 不 仅 为 响 应 由 连 接 和 查 询 而 引 起 的 事 件, 而 且 为 
在 运 行 时 调 用 已 有 存 储 过 程 和 用 户 定 义 的 查 询 提 供 了 简
 单 的 方 法。 使 用User Connection 设 计 器 这 种 技 术, 代 码 可 减
 少10 倍, 性 能 却 没 有 任 何 损 失。 

---- 现 在 用VB5 来 建 服 务 器 端 组 件 或 前 端 应 用 程 序, 可 以 
使 用 的 数 据 库 接 口 方 案 至 少 有 九 种。 每 一 种 方 案 都 可 满
 足 用 户 特 定 的 需 要, 比 如 特 殊 的 数 据 源 和 用 户 开 发 的 技
 能 等。 

Visual Basic 访 问 数 据 库 的 现 状 
下 面 的 表 格( 表 一) 列 出 了 目 前 在VB5 中 有 效 的 数 据 访 问 接
 口 方 法, 一 部 分 是 简 单 的 应 用 程 序 接 口 界 面(APIs), 但 大
 部 分 是 组 件 对 象 模 型 界 面(COM)。 这 两 类 数 据 库 接 口 界 
面 事 实 上 在 任 何 一 种 开 发 语 言 中 都 包 括。 

表 一 

接口界面 访问对象 16/32位支持 
VBSQL 通过DB-Library访问微软的SQL Server 16位和32位 
DAO/Jet 本地的Jet/Access.MDB、顺序索引数据库(ISAM)和任何ODBC数据源。
 16位和32位 
DAO/ODBC Direct 任何一种ODBC数据源(经过RDO) 32位 
RDO 2.0 任何一种ODBC数据源(Level I或II) 32位 
ADO* 任何一种ODBC数据源和任何经过OLE DB界面接口的数据源 32位 

---- *ADO 不 包 括 在VB5 中, 目 前 的 许 多 网 络 产 品 支 持ADO 如:
IIS、Visual Studio 等, 也 会 发 行 在VB 的 下 一 版 本VB6 中。 

---- 上 表 列 出 了 用VB5 程 序 代 码 访 问 数 据 库 的 几 种 接 口 界
 面, 但 是 许 多 开 发 人 员 也 使 用 一 些 数 据 库 绑 定 的 控 件 来
 实 现 一 些 简 单 重 复 的 功 能, 如: 用 户 数 据 的 输 入、 显 示、
 筛 选 等 接 口 界 面。VB 也 支 持 对 多 种 数 据 源 访 问 的 控 件, 
这 些 控 件 在VB 和COM 界 面 接 口 之 间 起 着 媒 介 作 用。 这 些 控 
件 提 供 了 一 种 减 少 代 码 实 现 数 据 访 问 的 途 径, 该 方 法 简
 化 了 代 码 并 使 程 序 员 不 必 亲 自 处 理 检 索 和 更 新 数 据 的 
底 层 结 构 和 机 制。 它 赋 予 程 序 员 很 大 的 灵 活 性, 因 为 可 
以 使 用 同 样 的 对 象、 属 性 和 方 法 来 处 理 各 种 不 同 的 数 据
 库 格 式。 同 时, 如 果 从 一 种 数 据 库 格 式 变 到 另 一 种 格 式
( 例 如, 将 本 地 的 Microsoft Access 数 据 库 转 换 为 网 络 上 的 
SQL Server 数 据 库), 只 需 变 动 少 量 的 代 码 就 可 以 适 应 这 种
 改 变。 甚 至 可 以 创 建 这 样 的 应 用 程 序, 在 单 一 的 查 询 或
 报 表 中 连 接 来 自 多 个 不 同 数 据 库 的 表。

表 二 

数据绑定控件 访问对象 16/32位支持 
Data Corolor DAO/Jet数据界面接口 16位和32位 
Data Control/ODBC Direct DAO/ODBC Direct数据界面接口 32位 
RemoteData Control/RDC RDO数据界接口 32位 
Advanced Data Connector/ADC* ADO数据界面接口 32位 

---- *ADO 不 包 括 在VB5 中, 目 前 的 许 多 网 络 产 品 支 持ADO 如:
IIS、Visual Studio 等, 也 会 发 行 在VB 的 下 一 版 本VB6 中。 

---- 经 过 数 年 发 展,ODBC 技 术 日 臻 完 善, 已 成 为 访 问 远 程 
数 据 的 主 要 方 法, 而Jet 成 为 本 地Jet 和ISAM 数 据 接 口 的 首 选
 方 案。 虽 然 这 些 方 法 在 不 同 程 度 上 有 功 能 交 迭 的 地 方,
 在 论 证 选 用 数 据 库 访 问 的 方 法 时, 主 要 还 应 满 足 用 户 在
 特 殊 应 用 程 序 中 对 具 体 数 据 接 口 的 访 问。 

---- 并 不 是 所 有 人 对 数 据 访 问 中 的 一 些 缩 写 词 都 了 解。 
表 三 从VB 的 观 点 简 要 介 绍 这 些 缩 写 词 的 含 义 和 各 种 数 据
 访 问 方 法 的 功 能 比 较。 

Visual Basic 访 问 数 据 库 的 前 景 
---- 近 来 随 着Web 应 用 软 件 的 迅 速 发 展 和 现 有 数 据 存 储 形
 式 的 多 种 多 样,Visual Basic 访 问 数 据 库 的 解 决 方 案 面 临 诸
 如 快 速 提 取 分 布 于 企 业 内 部 和 外 部 有 用 商 业 信 息 等 的 
多 种 挑 战。 为 此Microsoft 提 出 一 种 新 的 数 据 库 访 问 策 略, 
即“ 统 一 数 据 访 问”(Universal Data Access) 的 策 略。“ 统 一 数
 据 访 问” 提 供 了 高 性 能 的 存 取 包 括 关 系 型 和 非 关 系 型 在
 内 的 多 种 数 据 源, 提 供 独 立 于 开 发 工 具 和 开 发 语 言 的 简
 单 的 编 程 接 口, 这 些 技 术 使 得 企 业 集 成 多 种 数 据 源、 选
 择 更 好 的 开 发 工 具、 应 用 软 件、 操 作 平 台、 建 立 容 易 维 
护 的 解 决 方 案 成 为 可 能。 

---- “ 统 一 数 据 访 问” 的 基 础 是Microsoft 的 数 据 访 问 组 件。
 这 些 组 件 包 括ActiveX Data Objects(ADO)、Remote Data Service(RDS,
 也 称“ 高 级 数 据 连 接 器 或”ADC)、OLE DB 和ODBC。 

 

表 三 

数据访问接口 功能及含义 
ADC 高级数据连接器(Advanced Data Connector):提供绑定ADO数据源到窗体的
数据绑定控件上。ADC主要是一种直接访问或者通过ADO访问远程OLE DB对象的一
种技术,它也支持主要应用在微软IE浏览器上的数据绑定控件。它是特地为Web上
的浏览器为基础的应用程序而设计的。 
ADO Active数据对象(Active Data Objects):ADO实际是一种提供访问各种数
据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口
。可以使用任何一种ODBC数据源,即不止适合于SQL Server、Oracle、Access等
数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件
。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数
据访问接口方法。 
DAO 数据访问对象(Data Access Objects):是一种面向对象的界面接口。通过D
AO/Jet功能可以访问ISAM数据库,使用DAO/ODBC Direct功能可以实现远程RDO功
能。使用DAO的程序编码非常简单,DAO提供丰富的游标(Cursor)类型的结果集
和非游标(Cursor-Less)类型的结果集,同DDL(数据描述语言)的功能很类似
。DAO模型是设计关系数据库系统结构的对象类的集合。它们提供了完成管理这样
一个系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引
,建立表间的关系,定位和查询数据库等工具。 
Jet 数据连接性引擎技术(Joint Engine Technology):是一种基于工作站通过
DAO的数据库访问机制。虽然可以通过微软Access提供的ODBC驱动程序访问Jet数
据库,但使用这些驱动程序在功能上有所限制。Jet机制有自己的查询和结果集处
理功能,并可对同种或异种数据源作查询处理。 
ODBC 开放式的数据库连接(Open Database Connectivity):是一种公认的关系
数据源的接口界面。它快而轻并且提供统一接口的界面,ODBC对任何数据源都未
作优化。 
ODBC Direct 是一种基于DAO对象的新的DAO模式,其方法和属性与RDO功能相同。
使用在有DAO代码存在的场合,可用来访问远程数据源。 
OLE DB 是一种底层数据访问界面接口。是用于第三方驱动程序商家开发输出数据
源到ADO-技术的应用程序或用于C++的开发者开发定制的数据库组件。OLE DB不
能被VB直接调用。 
RDC 远程数据访问控件(RemoteData Control):是一种对RDO数据绑定的控件。
可以输出特定的结果集到数据源控件。 
RDO 远程数据对象(RemoteData Objects):远程数据对象和集合为使用代码来创
建和操作一个远程ODBC数据库系统的各个部件提供了一个框架。对象和集合都具
有描述数据库的各个部件特征的属性以及用来操作这些部件的方法。可以在对象
和集合之间建立起关系,这些关系就代表了数据库系统的逻辑结构。RDO是ODBC 
API的一个浅层界面接口。是专为访问远程ODBC关系数据源而设计的。 
VBSQL 是Visual Basic结构化查询语言。是一种基于API的接口方法,几乎与C的
DB-Library API相同。VBSQL只支持微软的SQL Server。VBSQL快而且轻但不支持
对象界面。 
===================================

欢迎投稿  [email protected]
===================================


请订阅:
http://server.com/WebApps/mail-list-unsubscribe.cgi?id=16852

--
网站主页地址:http://home.hn.cninfo.net/home/msnet
网易上的主页地址:http://www4.netease.com/~aaaaaaaaa
本网站主页镜像地址:http://goodvbhome.yeah.net

※ 修改:.msnet 于 May 15 07:36:24 修改本文.[FROM: 202.103.47.190]
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.103.47.190]

[关闭][返回]