Oracle Developer/2000 是ORACLE 第 二 代 的Client/Sever 应 用 开 发 工 具, 它 提 供 了 一 种 面 向 对 象 的 开 发 环 境, 本 人 曾 经 使 用ORACLE DEVELOPER/2000 完 成 了 的 软 件 编 程, 在 编 程 过 程 中 总 结 出 了 一 些 小 小 的 经 验, 把 它 们 写 出 来 与 大 家 分 享, 并 希 望 能 对 初 学 者 有 所 帮 助。
1 . 如 何 屏 蔽 系 统 提 示 信 息 ?
---- 在 运 行 一 个FORM 时 往 往 会 弹 出 一 些 报 警 器, 但 提 示 的 并 非 出 错 信 息, 屏 蔽 这 些 报 警 器 的 方 法 是 将 系 统 变 量:SYSTEM.MESSAGE_LEVEL 的 值 设 置 为'25'。
2 . 在 编 写PL/SQL 代 码 中 使 用SELECT 语 句 时 如 何 避 免 例 外 发 生 ?
---- 在 使 用SELECT 语 句 为 某 变 量 赋 值 时, 往 往 会 出 现"NO_DATA_FOUND" 和"TOO_MANY_ROWS" 等 异 常 情 况, 使 用SELECT 语 句 分 两 种 情 况: 第 一 种 情 况, 判 断 某 表 中 是 否 有 符 合 某 一 条 件 的 记 录, 这 时 使 用 聚 组 函 数MAX 就 可 以 避 免 以 上 两 个 例 外 的 发 生。 其 格 式:SELECT MAX( 列1),MAX( 列2)... ... INTO 变 量1, 变 量2... ... FROM 基 表 WHERE 条 件, 当 没 有 符 合 条 件 的 数 据 时, 该 语 句 返 回 空, 即 变 量1, 变 量2... ... 的 值 均 为 空, 而 不 会 出 现"NO_DATA_FOUND" 例 外, 另 外 使 用 聚 组 函 数MAX 的 同 时 也 就 避 免 了"TOO_MANY_ROWS" 例 外。 第 二 种 情 况,SELECT 语 句 中 含 聚 组 函 数SUM, 这 时 如 果 使 用 了GROUP BY 和HAVING 子 句, 当 没 有 符 合 条 件 的 记 录 时 将 发 生"NO_DATA_FOUND" 例 外, 此 时 避 免 例 外 的 办 法 是: 去 掉GROUP BY 和HAVING 子 句, 将HAVING 子 句 的 条 件 加 到WHERE 子 句 中。 这 样 在 使 用SELECT 语 句 时 就 不 必 再 额 外 增 加 一 段 处 理 例 外 的 代 码, 从 而 简 化 的 代 码 的 编 写。
3 . 当 使 用 主 从 块 时, 如 何 使 从 块 自 动 提 交 ?
---- 在FORM 设 计 时 有 时 需 要 用 到 主 从 块, 在 主 从 块 录 入 时 每 当 鼠 标 从 从 块 移 到 主 块 准 备 录 入 一 条 新 记 录 时, 总 是 弹 出 一 报 警 器, 问 你 是 否 保 存 数 据, 从 而 影 响 录 入 速 度, 将 该 报 警 器 去 掉 的 方 法 是: 在 过 程"CLEAR_ALL_MASTER_DETAILS" 中 的"CLEAR_BLOCK(ASK_COMMIT)" 即 清 除 从 块 时 是 否 提 交 改 为"CLEAR_BLOCK(DO_COMMIT)", 这 样 从 块 录 完 数 据 再 导 航 到 主 块 录 入 新 记 录 时, 系 统 将 自 动 提 交 数 据, 而 不 再 出 现 上 述 提 示。
4 . 如 何 减 少FORM 所 占 磁 盘 空 间 ?
---- (1) 对 于 块 中 只 用 于 查 询 并 且 无 格 式 限 制 的 项, 设 置 为 显 示 项。
---- (2) 保 存FORM 时 先 断 开 与 数 据 库 的 链 接, 然 后 在 保 存。 以 上 两 种 方 法 均 可 减 小FORM 的 大 小, 尤 其 是 第 二 种 方 法 更 为 明 显。 当 硬 盘 空 间 较 小, 或 将 程 序 备 份 到 软 盘 上 时, 这 样 作 是 很 有 意 义 的。
5 . 如 何 使 定 制 菜 单 的 主 菜 单 中WINDOWS 项 不 显 示 ?
---- 在MAIN MENU 中 建 立 一 个 为WINDOWS 属 性 的 菜 单 项, 这 样 主 菜 单 中WINDOWS 项 就 不 再 显 示。
6 . 如 何 使 不 同 布 局 的 报 表 显 示 在 同 一 页 上 ?
---- 复 杂 的 报 表 往 往 是 由 几 部 分 组 成, 需 建 立 多 个 查 询, 而 每 个 查 询 都 对 应 着 一 个 布 局, 怎 样 才 能 使 具 有 不 同 布 局 的 报 表 数 据 显 示 在 同 一 页 上 呢 ? 其 方 法 如 下: 第 一 步, 首 先 根 据 实 际 报 表 格 式 建 立 第 一 个 查 询 组 的 布 局, 称 为 布 局1, 然 后 依 次 再 建 立 起 其 他 查 询 组 的 布 局, 分 别 称 为 布 局2, 布 局3... ...。 注 意: 每 个 布 局 最 外 围 的 单 选 框 不 要 去 掉。 第 二 步, 分 别 为 布 局2, 布 局3... ... 建 立 一 个 到 布 局1 的 定 位(ANCHOR), 即 选 中 工 具 栏 中 的ANCHOR, 鼠 标 单 击 布 局2 的 单 选 框, 然 后 按 住 鼠 标 左 键 并 拖 动 鼠 标 到 布 局1 的 单 选 框 上( 可 以 选 择 上 边? 下 边? 左 边 或 右 边), 松 开 鼠 标 按 钮, 按 此 方 法 再 建 立 布 局3, 布 局4... ... 到 布 局1 的 定 位。 建 立 定 位 的 作 用 是 使 布 局2, 布 局3... ... 相 对 与 布 局1 的 位 置 保 持 不 变, 这 样 就 使 具 有 不 同 布 局 的 报 表 数 据 显 示 并 打 印 在 同 一 物 理 页 上。
7 . 怎 样 较 快 的 生 成FMX 文 件 ?
---- 用RUN 命 令, 一 次 只 能 生 成 一 个.FMX 文 件, 如 果 想 生 成 一 批.FMX 文 件, 这 样 做 即 麻 烦 又 费 时, 一 个 生 成.FMX 较 快 的 办 法 是: 先 打 开 要 运 行 的.FMB 文 件, 如 何 按 住SHIFT 键 将 这 些 文 件 全 部 选 中, 在 从 系 统 菜 单" 文 件" 中 选 择 "ADMINISTRATION" 中"GENERATE" 即 可。