| 31995; 统 时 间 要 短 。 程 序 员 可 以 利 用 API 分 别 开 发 Web 服 务 器 与 数 据 库 服 务 器 的 接 口 程 序 。
Web API 的 出 现 解 决 了 CGI 的 低 效 问 题 , 但 用 API 编 程 比 开 发 CGI 程 序 更 加 困 难 。 开 发 API 程 序 需 要 多 线 程 、 进 程 同 步 、 直 接 协 议 编 程 等 知 识 。
为 了 解 决 复 杂 与 高 效 之 间 的 矛 盾 , Netscape 与 Microsoft 均 为 各 自 的 Web 服 务 器 提 供 了 基 于 API 的 高 级 编 程 接 口 。 Netscape 提 供 的 是 LiveWire,Microsoft 提 供 的 是 IDC(Internet Database Connector) 。
(1)Netscape 的 LiveWire LiveWire 是 一 个 通 用 的 Web 开 发 环 境 , 而 不 仅 仅 是 数 据 库 访 问 接 口 。 LiveWire 的 编 程 语 言 是 JavaScript , 它 提 供 了 一 个 database 对 象 , 该 对 象 的 方 法 可 用 来 操 作 关 系 数 据 库 。 当 一 个 应 用 程 序 要 连 接 数 据 库 服 务 器 时 , LiveWire 就 建 立 一 个 database 对 象 。 每 个 应 用 程 序 只 能 有 一 个 数 据 库 对 象 。
用 database 对 象 的 connect 方 法 可 连 接 数 据 库 服 务 器 , 例 如 : database.connect( ″ ORACLE ″ , ″ OraSvr ″ , ″ system ″ , ″ manager ″ , ″ MyDB ″ )
可 连 接 到 ORACLE 数 据 库 服 务 器 OraSvr 上 system/manager 用 户 的 MyDB 数 据 库 实 例 上 。
LiveWire 提 供 了 几 种 显 示 数 据 库 查 询 结 果 的 方 法 。 其 中 , 最 简 单 而 且 最 快 的 是 用 database 对 象 的 SQL Table 方 法 。 SQL Table 方 法 以 HTML 表 的 形 式 返 回 SQL 语 句 的 查 询 结 果 。
SQL Table 自 动 控 制 查 询 结 果 的 输 出 格 式 , 这 是 最 简 单 的 方 法 。 如 果 你 希 望 自 己 定 制 输 出 格 式 , 可 用 数 据 库 光 标 建 立 自 己 的 显 示 函 数 。
每 个 数 据 库 查 询 都 将 返 回 一 个 光 标 , 光 标 可 以 看 成 数 据 库 查 询 结 果 构 成 的 虚 表 或 视 图 , 每 个 光 标 都 支 持 当 前 行 (current row) 的 概 念 , 它 是 指 向 结 果 表 中 记 录 的 指 针 。 一 旦 应 用 程 序 与 数 据 库 连 接 成 功 , 你 就 可 以 用 database 对 象 的 cursor 方 法 来 为 指 定 的 SQL 查 询 语 句 建 立 光 标 。
cursorName=database.cursor( ″ SELECT 语 句 ″ , updatable)
其 中 cursorName 是 为 光 标 对 象 所 取 的 名 字 ; ?SELECT 语 句 ?是 数 据 库 服 务 器 支 持 的 SQL 查 询 语 句 ; updatable 是 一 个 布 尔 参 数 , 它 表 示 该 光 标 是 否 允 许 修 改 。
可 修 改 光 标 (updatable cursor) 允 许 借 助 光 标 的 当 前 行 来 更 新 数 据 库 中 的 表 。 但 这 时 的 光 标 只 能 限 定 为 单 表 的 查 询 结 果 。
应 用 程 序 可 以 用 disconnect 方 法 关 闭 数 据 库 连 接 : database.disconnect()
一 旦 关 闭 了 数 据 库 连 接 , 应 用 程 序 便 无 法 建 立 光 标 或 使 用 其 他 database 方 法 。
事 务 是 一 组 数 据 库 操 作 的 集 合 , 这 些 操 作 要 么 一 起 成 功 , 要 么 一 起 失 败 。 操 作 的 提 交 或 回 退 是 一 同 生 效 的 。 事 务 处 理 的 概 念 对 维 护 数 据 的 完 整 性 和 一 致 性 是 十 分 重 要 的 。 尽 管 各 种 数 据 库 服 务 器 事 务 处 理 的 实 现 方 法 有 所 不 同 , LiveWare 提 供 了 统 一 的 事 务 处 理 接 口 。
主 要 是 数 据 库 更 新 语 句 (INSERT , UPDATE 和 DELETE) 要 在 事 务 控 制 之 下 完 成 。 database 对 象 的 begin Transaction 、 commitTransaction 和 rollbackTransaction 方 法 分 别 用 来 启 动 、 提 交 和 回 退 事 务 。
多 媒 体 数 据 ( 图 像 、 声 音 、 文 本 、 动 画 等 ) 可 以 二 进 制 大 对 象 (BLOB) 的 形 式 存 入 数 据 库 。 LiveWire 有 两 种 处 理 二 进 制 数 据 的 方 法 , 第 一 种 是 把 文 件 名 存 入 数 据 库 , 而 文 件 实 体 放 在 数 据 库 外 ; 第 二 种 是 直 接 用 BLOB 类 型 的 字 段 存 储 多 媒 体 数 据 , 再 通 过 LiveWire 提 供 的 BLOB 方 法 来 访 问 这 些 数 据 。
LiveWire 仅 仅 支 持 Netscape Enterprise/FastTrack Server , 而 不 支 持 其 他 的 Web 服 务 器 。
(2)Microsoft 的 IDC
IDC 是 Microsoft Web 服 务 器 IIS(Internet Information Server) 的 一 个 动 态 链 接 库 , 它 通 过 ODBC 接 口 访 问 各 种 数 据 库 。 IDC 包 含 两 种 类 型 的 文 件 & 上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页 |