第 三 课 : 使 用 Database Access ( 数 据 库 访 问 ) 组 件
ASP 的 Database Access 组 件 使 用 ActiveX Data Objects (ADO) 提 供 一 种 轻 而
易 举 的 方 法 , 可 以 访 问 存 储 在 数 据 库 或 其 他 表 格 式 数 据 结 构 ( 如 电 子 表 格 ) 中 的
信 息 , 只 要 它 们 遵 循 Open Database Connectivity (ODBC) 标 准 即 可 。 在 本 课 中
, 您 将 连 接 到 一 个 Microsoft? Access 客 户 数 据 库 , 并 且 显 示 目 录 列 表 。 您 将 学
习 如 何 使 用 SQL SELECT 语 句 来 检 索 数 据 , 并 且 创 建 一 个 HTML 表 格 来 显 示 结 果
。
----------------------------------------------------------------------
----------
----------------------------------------------------------------------
----------
识 别 数 据 库
在 通 过 Database Access 组 件 使 用 一 个 数 据 库 之 前 , 必 须 在 “ 控 制 面 板 ” 的 OD
BC 程 序 中 识 别 这 个 数 据 库 。 在 本 例 中 , 您 将 使 用 本 教 程 提 供 的 一 个 Microsoft?
Access 数 据 库 。
在 运 行 Web 服 务 器 (localhost) 的 计 算 机 上 , 打 开 “ 控 制 面 板 ” 。
双 击 “ ODBC ” 图 标 , 然 后 单 击 “ 系 统 DSN ” 选 项 卡 。
DSN 将 告 诉 数 据 库 驱 动 程 序 ( 用 来 配 置 数 据 库 并 与 其 通 讯 的 程 序 ) 数 据 库 文 件 所
在 的 位 置 。 您 可 以 创 建 3 种 类 型 的 DSN: 用 户 DSN (User DSN) , 只 能 对 您 起 作
用 ; 系 统 DSN (System DSN) , 可 以 对 计 算 机 的 所 有 用 户 起 作 用 ; 文 件 DSN (F
ile DSN) , 将 DSN 信 息 保 存 为 文 件 , 并 且 允 许 所 有 用 户 使 用 相 同 的 数 据 库 驱 动 程
序 。 本 教 程 使 用 的 DSN 必 须 是 系 统 DSN (System DSN) 。
单 击 “ 添 加 ” , 选 择 “ Microsoft Access 驱 动 程 序 ” , 然 后 单 击 “ 完 成 ” 。
在 “ 数 据 源 名 称 ” 框 中 , 键 入 ASPTutorial , 然 后 单 击 “ 选 择 ” 。 选 择 BTCustm
r.mdb 文 件 ( 默 认 情 况 下 位 于 WINNT\Help\IIS\Htm\Tutorial 目 录 中 ) , 然 后 单
击 “ 确 定 ” 。
单 击 “ 确 定 ” 关 闭 对 话 框 。
创 建 组 件 实 例
用 文 本 编 辑 器 打 开 localhost Web 服 务 器 上 Tutorial 目 录 ( C:\WINNT\Help\
iis\htm\tutorial) 中 的 Database.asp 文 件 。
查 找 文 字 “ Define Scripting Language ” , 将 下 列 脚 本 插 入 找 到 的 文 字 行 之 后 :
〈 %@ LANGUAGE = "VBScript" % 〉
必 须 保 证 这 个 标 记 是 所 有 .asp 文 件 的 第 一 个 脚 本 行 。
查 找 文 字 “ Tutorial Lesson - ADO Connection ” , 脚 本 将 插 入 到 找 到 的 文 字 行
之 后 。
必 须 先 创 建 一 个 对 象 的 实 例 , 然 后 才 能 使 用 它 。 请 复 制 并 粘 贴 以 下 脚 本 命 令 :
〈 %
Set objConnection = Server.CreateObject("ADODB.Connection")
如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 , 那 么 这 些 脚 本 命 令 就 已
经 在 “ Tutorial Lesson ” 注 释 行 以 下 了 。 请 用 复 制 的 脚 本 覆 盖 已 有 的 脚 本 , 或 者
将 未 使 用 过 的 Database.asp 从 Template 子 目 录 (C:\WINNT\Help\iis\htm\tu
torial/template) 复 制 到 Tutorial 目 录 中 。
对 于 Database Access 组 件 来 说 , 您 必 须 指 定 ODBC 数 据 源 ( 要 从 其 中 检 索 数 据
的 数 据 库 ) , 方 法 是 打 开 一 个 到 数 据 库 的 连 接 。 复 制 并 粘 贴 以 下 脚 本 命 令 :
objConnection.Open "ASPTutorial"
使 用 Database Access 组 件 的 Execute 方 法 , 可 以 向 数 据 库 发 送 一 个 将 结 构 化
查 询 语 言 (Structured Query Language, SQL) 的 SELECT 命 令 , 并 且 将 返 回 的
记 录 保 存 到 结 果 集 合 (rsCustomersList) 中 。 请 将 下 列 脚 本 命 令 复 制 并 粘 贴 到
objConnection.Open 语 句 之 后 :
SQLQuery = "SELECT * FROM Customers"
Set rsCustomersList = objConnection.Execute(SQLQuery)
% 〉
如 果 将 SQL 查 询 字 符 串 直 接 传 递 给 Execute 方 法 , 而 不 是 先 给 变 量 SQLQuery
赋 值 , 就 可 以 将 这 两 行 合 并 。 当 SQL SELECT 行 比 较 长 时 , 为 使 脚 本 易 读 一 些 ,
可 以 将 字 符 串 赋 值 给 一 个 变 量 ( 如 SQLQuery ) , 然 后 将 变 量 名 传 递 给 Execute
方 法 。
显 示 返 回 的 结 果 集 合
您 可 以 将 结 果 集 合 视 为 一 个 表 格 , 这 个 表 格 的 结 构 由 SQL SELECT 语 句 中 的 字 段
决 定 。 显 示 检 索 返 回 的 行 , 就 象 在 结 果 集 合 中 按 行 数 执 行 循 环 一 样 简 单 。 在 本 示
例 中 , 返 回 的 数 据 显 示 在 HTML 表 格 行 中 。
在 Database.asp 文 件 中 , 查 找 文 字 “ Tutorial Lesson - Display ADO Data ”
, 将 以 下 脚 本 复 制 并 粘 贴 到 找 到 的 行 之 后 :
〈 % Do Until rsCustomersList.EOF% 〉
〈 tr 〉
〈 td bgcolor="f7efde" align=center 〉
〈 %= rsCustomersList("ContactFirstName")% 〉
〈 %= rsCustomersList("ContactLastName") % 〉
〈 /td 〉
〈 td bgcolor="f7efde" align=center 〉
〈 a href="mailto: 〈 %= rsCustomersList("ContactLastName")% 〉 " 〉
〈 %= rsCustomersList("ContactLastName")% 〉 〈 /a 〉
〈 /td 〉
〈 td bgcolor="f7efde" align=center 〉
〈 %= rsCustomersList("City")% 〉
〈 /td 〉
〈 td bgcolor="f7efde" align=center 〉
〈 %= rsCustomersList("StateOrProvince")% 〉
〈 /td 〉
〈 /tr 〉
如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 , 那 么 这 些 脚 本 命 令 就 已
经 存 在 了 。 用 复 制 的 脚 本 覆 盖 已 有 的 脚 本 , 或 者 将 未 使 用 过 的 Bayshore.asp 从
Template 目 录 复 制 到 Tutorial 目 录 中 。
当 条 件 为 “ 真 ” 时 , VBScriptDo...Loop 语 句 重 复 执 行 一 段 语 句 。 被 重 复 执 行 的
语 句 可 以 是 脚 本 命 令 或 HTML 文 本 和 标 记 。 因 此 , 在 循 环 的 每 次 重 复 中 , 您 都 可
以 用 HTML 画 出 表 格 行 , 并 且 用 脚 本 命 令 插 入 返 回 的 数 据 。
要 完 成 循 环 , 还 要 使 用 MoveNext 方 法 来 移 动 行 指 针 到 下 一 行 。 因 为 这 一 语 句 仍
然 在 Do...Loop 语 句 中 , 所 以 它 一 直 重 复 , 直 到 到 达 文 件 结 尾 才 停 止 。 请 复 制 以
下 脚 本 , 并 将 其 粘 贴 到 “ Tutorial Lesson - Retrieve Next Row ” 行 之 后 :
〈 %
rsCustomersList.MoveNext
Loop
% 〉
以 纯 文 本 格 式 保 存 Database.asp 文 件 , 并 且 退 出 文 本 编 辑 器 。 注 意 文 件 后 缀 .
asp 不 要 被 文 本 编 辑 器 替 换 。
若 要 验 证 您 创 建 的 ASP 页 是 否 正 常 运 行 , 请 将 您 的 浏 览 器 导 向 http://localho
st/IISHelp/IIS/Help/Htm/Tutorial/Database.asp 。 ( 此 后 若 要 返 回 本 教 程 , 只
要 在 浏 览 器 中 单 击 “ 上 一 页 ” 或 “ Back ” 按 钮 即 可 。 )
自 学 参 考
如 果 您 正 使 用 Windows NT , 要 参 阅 更 完 整 的 Database Access 组 件 示 例 , 可 以
访 问 Exploration Air 示 范 节 点 。 单 击 Behind the Scenes 图 像 , 可 以 学 习 用
来 创 建 这 个 Web 节 点 的 脚 本 的 更 多 知 识 。 在 Bayshore Travel Web 页 上 也 有 指
向 Exploration Air 示 范 节 点 的 链 接 。
注 意 如 果 您 还 没 有 访 问 Exploration Air 示 范 节 点 , 上 面 的 链 接 将 把 您 带 到 E
xploration Air 主 页 。 此 后 若 要 返 回 本 教 程 , 只 要 在 浏 览 器 中 单 击 “ 上 一 页 ” 或
“ Back ” 按 钮 即 可 。
现 在 , 您 已 经 用 过 了 ActiveX 组 件 , 让 我 们 来 学 习 模 块 3 : 编 写 自 己 的 组 件 。
----------------------------------------------------------------------
----------
模 块 3 : 编 写 自 己 的 组 件
请 选 择 本 课 的 脚 本 语 言 。
在 模 块 2 中 , 您 已 经 熟 悉 了 ASP 提 供 的 组 件 , 现 在 该 创 建 自 己 的 组 件 来 满 足 自
己 的 特 殊 需 要 了 。
假 设 您 需 要 创 建 一 个 ASP 程 序 , 以 便 通 过 Web 节 点 提 供 特 定 的 财 务 功 能 。 ASP
没 有 直 接 提 供 这 样 的 功 能 , 不 过 您 可 以 通 过 创 建 自 己 的 Java 或 ActiveX 组 件 来
解 决 问 题 。 您 将 在 本 模 块 中 学 会 这 些 。
如 果 要 学 习 如 何 创 建 并 使 用 组 件 , 首 先 使 用 下 面 的 表 格 进 行 选 择 :
----------------------------------------------------------------------
----------
选 择 本 课 要 创 建 的 组 件 类 型 :
评论0