首页 目录页 热情软件屋 问专家

李海文选

瞄准Web,大步向前

李海

哲华

本文发表在《个人电脑》1997年第2期

Visual FoxPro 5.0 中 文 版 开 创 中 文 数 据 库 应 用 的 新 局 面

  Microsoft Visual FoxPro 5.0 中 文 版(VFP) 支 持Internet 了! 这 并 不 让 人 感 到 意 外, 因 为 从 现 在 起, 所 有 的 微 软 产 品 都 将 提 供Internet 支 持。Internet 是 时 下 最 热 门 的 话 题, 但 国 内 使 用 过Internet 的 用 户 大 多 会 有 一 些 失 望 :Internet 上 的 中 文 资 源 少 得 可 怜。 在Internet 上, 重 要 内 容 中 如 果 没 有 足 够 的 有 价 值 的 中 文 信 息,Internet 热 也 许 不 会 长 久。 另 一 方 面, 以Fox 系 列 为 代 表 的XBASE 数 据 库 在 中 国 发 展 了 将 近 十 年, 许 多 单 位, 特 别 是 科 研 院 所, 开 发 了 大 量 的 针 对 公 众 的 数 据 库 系 统, 但 由 于 缺 乏 远 程 查 询 手 段, 这 些 数 据 库 没 能 起 到 应 有 的 作 用, 而VFP 5.0 可 以 说 在 这 方 面 起 到 了 桥 梁 作 用。

WWW 数 据 库 出 版

   通 过VFP 5.0, 用 户 可 以 利 用Internet Explorer 或Netscape Navigator 这 样 的 浏 览 器 去 查 询 远 程 的Internet 服 务 器 上 的 数 据 库。 反 过 来, 公 司 也 可 以 利 用Web 进 行 数 据 收 集 工 作( 比 如 在 线 的 问 卷 调 查), 然 后 将 收 集 的 数 据 保 存 在 数 据 库 中, 以 便 进 一 步 分 析、 处 理。

  VFP 提 供 了WWW Search Page Wizard, 用 于 生 成 所 需 的HTML 文 件, 这 个 向 导 在 菜 单 上 找 不 到, 需 要 用DO 命 令 调 用。 在VFP 的SAMPLES\SERVERS\ FOXISAPI 目 录 下 提 供 了 一 个 完 整 的 示 例 来 展 示VFP 在 这 方 面 的 功 能。 这 个 示 例 需 要Windows NT 3.51+Service Pack 3 或Windows NT 4.0 支 持。

   我 们 在 测 试 中 感 到, 要 利 用VFP 进 行 数 据 库 出 版, 除 了 要 熟 悉VFP 以 外, 可 能 还 需 要 一 些 专 门 的 知 识, 比 如HTML、CGI( 公 共 网 关 接 口), 在 某 些 时 候 还 要 请C++ 来 帮 忙, 整 个 过 程 也 不 是 轻 而 易 举 的。

ActiveX 控 制

  Visual FoxPro 5.0 对Internet 支 持 的 另 一 个 方 面 是ActiveX 控 制。VFP 3.0 提 供 了 对OLE( 或 称OCX 控 制) 的 支 持, 而ActiveX 控 制 可 以 被 看 成 是OLE 控 制 针 对Internet 所 作 的 改 进( 参 看1997 年 第1 期PC 技 术)。 同Visual Tools 系 列 的 其 它 开 发 工 具 一 样,VFP 5.0 提 供 了 数 量 众 多 的ActiveX 控 制, 其 中 几 个 是 针 对VFP 设 计 的, 如 用 于 作 为OLE 控 制 包 容 器 的HWND 和Foxtlib 控 制。 即 使 不 使 用Internet 功 能, 这 些 控 制 对 于 用 户 更 好 地 设 计 界 面, 也 会 起 到 重 要 作 用。 但 目 前 的VFP 版 本 还 不 能 象Visual Basic 5.0 那 样 建 立ActiveX 控 制。

支 持 建 立Automation 服 务 器

  VFP 5.0 的 另 一 个 比 较 大 的 改 进 是 支 持 建 立Automation( 以 前 被 称 为OLE Automation) 服 务 器。 采 用VFP 设 计 的Automation 服 务 器 可 以 公 开 为 最 终 用 户 提 供 一 些 方 法 和 属 性, 这 样 即 使 没 有VFP 的 源 程 序, 最 终 用 户 也 可 以 利 用 这 些 方 法 和 属 性 完 成 特 定 的 数 据 操 作, 就 象 在Word 中 使 用 宏、 在Excel 中 使 用VBA 一 样 简 单。 而 用 来 调 用Automation 服 务 器 的 软 件, 既 可 以 是C++、Visual Basic、VFP、Delphi 这 样 的 专 业 开 发 工 具, 也 可 以 是Word、Excel 这 样 的 应 用 程 序。VFP 的Automation 服 务 器 的 设 计 也 不 困 难, 只 需 要 在 现 成 的 类 定 义 中 写 上PUBLIC, 这 些 类 的 成 员 就 可 以 通 过Automation 访 问 了。 以 如 此 少 的 工 作 量 实 现 二 次 开 发 当 然 是 一 件 极 有 诱 惑 力 的 事。

  VFP 建 立 的Automation 服 务 器 既 可 以 是 基 于DLL 的 进 程 内(in-process) 服 务 器, 也 可 以 是Automation 和DCOM( 分 布 式COM), 这 使 得 用 户 可 以 在 网 络 上 使 用Automation 功 能。

增 强 的 数 据 处 理 能 力

   除 了Internet 和Automation 以 外,VFP 5.0 在 数 据 库 设 计 方 面 也 做 了 不 少 有 益 的 尝 试。VFP 处 理 数 据 的 能 力 不 断 增 强, 通 过ODBC 甚 至 可 以 访 问Oracle 这 样 的 大 型 数 据 库 系 统, 为 了 适 应 这 种 变 化,VFP 5.0 又 提 出 了 离 线 视 图(offline view) 的 概 念。 如 果 把 网 络 上 的 大 型 数 据 库 下 载 到 本 地, 在 时 间 和 磁 盘 空 间 方 面 可 能 都 是 不 现 实 的, 而 利 用CREATEOFFLINE 函 数 可 以 在 本 地 建 立 离 线 视 图, 从 服 务 器( 既 可 以 是Fox 服 务 器, 也 可 以 是ODBC 服 务 器) 数 据 库 中 提 取 一 部 分 数 据, 在 离 线 的 情 况 下 象 本 地 视 图 一 样 编 辑 处 理, 然 后 上 载 到 服 务 器 进 行 数 据 更 新。 而 在 两 种 情 况 之 间 的 切 换 通 常 只 需 一 行 代 码。 这 对 于 需 要 远 程 访 问 数 据 库 的 人 来 说 相 当 实 用。

  FoxPro 2.0 引 入 结 构 化 查 询 语 言SQL,VFP 5.0 则 进 一 步 完 善 了SQL 的 支 持。 具 体 地 说, 就 是 支 持 了 外 联 接(Outer Join) 和ANSI SQL'92 风 格 的 联 接( 在SELECT 语 句 中 使 用JOIN 关 键 字)。 在VFP 3.0 中, 利 用SELECT 语 句 的WHEN 子 句 可 以 实 现 内 联 接, 即 两 个 数 据 表 间 的 一 一 对 应 的 联 接。VFP 5.0 可 以 利 用LEFT JOIN 和RIGHT JOIN 字 句 实 现 左 联 接 和 右 联 接, 即 一 对 多 和 多 对 一 的 联 接, 不 过 同Access 和Visual Basic 一 样,VFP 不 支 持*= 和=* 联 接 操 作 符。 所 有 这 些 联 接 都 可 以 通 过 查 询 设 计 器 完 成。 但 可 以 看 出,VFP 正 不 断 减 少 它 同Access 和Visual Basic 在SQL 方 面 的 差 别。

集 成 环 境 的 改 善

  VFP 5.0 借 鉴 了 其 它 开 发 工 具 的 长 处, 在 集 成 环 境 方 面 也 有 一 些 进 步。VFP 还 提 供 了 全 新 的 类 似Visual C++ 的 调 试 器。 在 独 立 的 调 试 窗 口 中, 包 括 有“ 跟 踪”、“ 监 视”、“ 调 试 堆 栈”、“ 调 试 输 出” 和“ 局 部” 五 个 子 窗 口, 源 程 序、 变 量、 属 性、 堆 栈 和 过 程 调 用 情 况 一 目 了 然。 开 发 人 员 可 以 设 置 复 杂 的 条 件 断 点, 进 行 事 件 跟 踪, 保 存 和 调 入 调 试 进 程(debug session)。 所 有 这 些 调 试 窗 口 都 支 持 拖 放 操 作。

   更 重 要 的 是,VFP 5.0 专 业 版 集 成 了Visual SourceSafe(VSS), 用 户 可 以 从VFP 5.0 集 成 环 境 的 菜 单 上 直 接 调 用VSS 的 功 能。VSS 是 个 源 程 序 管 理 软 件, 先 前 曾 出 现 在Visual Basic 4.0 和Visual C++ 4.0 中, 它 可 以 防 止 用 户 意 外 地 丢 失 代 码, 允 许 用 户 退 到 以 前 的 版 本 和 进 行 版 本 切 换、 合 并 和 管 理。VSS 是 面 向 项 目 的, 它 管 理 文 件 与 各 项 目 之 间 的 关 系, 减 少 了 开 发 人 员 在 这 方 面 的 工 作 量, 开 发 人 员 可 以 花 较 少 的 时 间 管 理 项 目, 而 把 较 多 的 精 力 用 于 开 发,VSS 也 实 现 了 代 码 重 用 和 基 于 组 件 的 开 发。

丰 富 的 范 例

  VFP 中 提 供 了90 多 个 解 决 方 案 实 用 范 例, 它 们 详 细 解 释 了 如 何 在Visual FoxPro 中 完 成 特 定 的 任 务。 其 中 包 括 从 简 单 的 数 据 输 入 表 单 到 可 以 动 态 调 整 的 标 签 化 对 话 框, 以 及Windows API 调 用 的 各 个 方 面。 用 户 可 以 在 帮 助 中 运 行 范 例 程 序, 也 可 以 在 命 令 窗 口 中 使 用DO SOLUTION.APP 来 浏 览 解 决 方 案。 在 进 入 范 例 浏 览 后, 你 可 以 从 几 个 方 面 了 解 如 何 运 用Visual FoxPro 来 编 制 应 用 程 序, 其 中 包 括ActiveX、 各 类 控 制、 表 单、 菜 单、 数 据 库、 报 表、 工 具 条 和Windows API 调 用, 在 主 浏 览 窗 口 中, 点 中 一 个 示 例 程 序, 在 下 面 的 窗 格 中 将 给 出 该 示 例 的 简 单 精 炼 的 说 明。 你 可 以 运 行 这 些 示 例 程 序 来 观 察 其 结 果 和 方 式 并 将 其 植 入 自 己 的 应 用 程 序 中, 也 可 以 查 看 源 代 码 来 了 解 编 程 细 节。 此 外, 在 线 文 档 中 还 提 供 了 一 段 长 达10 分 钟 的 对 于Visual FoxPro 编 程 机 制 的 动 画 讲 解 和 演 示。

中 文 支 持

   作 为 新 一 代 的FoxPro 中 文 版,VFP 5.0 提 供 以 往 版 本 所 未 提 供 的 全 汉 化 的 用 户 界 面 和 帮 助, 其 中 甚 至 包 括 表 设 计 器 中 所 提 供 的 字 段 类 型。 在VFP 5.0 中, 你 可 以 使 用 中 文 来 定 义 变 量 和 字 段 并 对 其 进 行 操 作。 不 过 遗 憾 的 是, 对 于 包 含 汉 字 的 表, 它 并 不 能 进 行 符 合 汉 语 习 惯 的 索 引。

回到《李海文选》目录

如果您有任何建议,请给我发电子邮件:
版权所有 李海,热情软件屋 1997-2006


WU Banner from WebUnion Chinese Network