发信人: 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]
|
|