知识大全 Oracle DP2000 应用技巧

Posted 单位

篇首语:于今腐草无萤火,终古垂杨有暮鸦。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle DP2000 应用技巧相关的知识,希望对你有一定的参考价值。

Oracle DP2000 应用技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Oracle 公 司 作 为 全 球 最 大 的 数 据 库 厂 商 之 一 其 数 据 库 系 统 是 优 秀 的 数 据 库 管 理 系 统 在 大 型 系 统 象 保 险 金 融 等 部 门 的 广 泛 应 用 是 众 所 周 知 的 但 其 数 据 库 前 端 开 发 工 具DEVEPER/ 在 业 界 中 介 绍 的 却 相 对 较 少 其 实 其 开 发 工 具Developer/ 也 是 一 功 能 强 大 的 方 便 灵 活 的 开 发 工 具 Developer/ 在 构 建 企 业 管 理 信 息 系 统 上 其 编 程 简 便 开 发 周 期 短 维 护 方 便 等 优 势 更 是 软 件 开 发 商 所 中 意 之 处 笔 者 所 在 公 司 在 开 发 社 保 系 统 中 就 采 用Developer/ 在 辽 宁 省 的 应 用 中 取 得 良 好 效 果 下 面 就 本 人 在Developer/ 开 发 社 保 系 统 中 所 遇 问 题 与 各 位 进 行 交 流    Developer/ FROMS 中 的 宏 代 换      在 早 期FOXPRO 数 据 库 编 程 中 经 常 用 到 宏 代 换 功 能 但 在FORMS 中 却 没 有 此 功 能 象 & * 等 在 编 程 中 经 常 用 到 的 在FORMS 中 只 得 一 行 一 行 代 码 的 写 但 后 来 发 现FORMS 中 也 有 类 似 功 能 用NAME_IN() COPY() 可 以 实 现 类 似 的 功 能 Name_in() 用 于 取 出 参 数 名 代 表 的 对 象 了 数 值 而COPY() 把 一 个 参 数 值 传 递 给 另 一 参 数 值 表 示 的 对 象 的 如 下 例     FORM 结 构   块B   项 L L L L L L   在 作 录 入 程 序 时 要 对L L 项 清 零  DELCATE   strItemName varchar ( );  BEGIN  for I in … loop  strItemName:= :b l ||to_char(i);  copy(null strItemNmae);  end loop;  END;   对 于NAME_IN 的 应 用 可 能 更 多 一 些 笔 者 在 做 社 保 软 件 时 作 保 险 缴 费 录 入 时 曾 用 它 少 写 了 许 多 代 码 当 然 代 码 的 减 少 就 义 意 味 维 护 工 作 量 的 减 少          FORM结构   养老   块 YLYJ(养老应缴)  项 DWJTC(单位缴统筹) DWJZH(单位缴帐户) GRJF(个人缴费)  块 YLSJ (养老实缴)  项 DWJTC(单位缴统筹) DWJZH(单位缴帐户) GRJF(个人缴费)  工伤   块 GSYJ(工伤应缴)  项 DWJTC(单位缴统筹) DWJZH(单位缴帐户) GRJF(个人缴费)  块 GSSJ (工伤实缴)  项 DWJTC(单位缴统筹) DWJZH(单位缴帐户) GRJF(个人缴费)  医疗   块 YILYJ(医疗应缴)  项 DWJTC(单位缴统筹) DWJZH(单位缴帐户) GRJF(个人缴费)  块 YILSJ (医疗实缴)  项 DWJTC(单位缴统筹) DWJZH(单位缴帐户) GRJF(个人缴费)   三 个 块 的 结 构 相 同 只 是 块 名 称 不 同 缴 费 时 时 行 的 操 作 也 一 样 实 缴 名 项 不 能 大 于 应 缴 不 用NAME_IN 时 只 能 写 三 段 程 序 但 用 了NAME_IN 后 只 用 一 段 写 一 个 函 数 就 能 达 到 目 的 如 下     FUNCTION FUN_JF (PRE_BLOCK_NAME   IN VARCHAR) RETURN BOOLEAN IS   BEGIN  if name_in(pre_block_name|| sj dwjtc )  >name_in(pre_block_name|| yj dwjtc ) or  name_in(pre_block_name|| sj dwjzh )  >name_in(pre_block_name|| yj dwjzh ) or  name_in(pre_block_name|| sj grjf )  >name_in(pre_block_name|| yj grjf ) then  message( 实 缴 大 于 应 缴 );  return false;  end if;  return true;  END;   从 上 面 的 两 个 例 子 来 看NAME_IN 和COPY 的 应 用 能 起 到 其 它 编 程 语 言 的 宏 代 换 功 能 代 码 的 优 化 方 面 确 实 能 起 不 少 的 作 用 减 少 了 程 序 源 代 码 的 维 护 工 作      用FORMS 实 现ORACLE 数 据 库 与 其 它 数 据 源 数 据 的 交 换      Developer/ 不 能 实 现 同 时 多 数 据 源 的 同 时 连 接 在 多 系 统 和 异 种 数 据 源 的 操 作 中 功 能 确 实 大 打 折 扣 虽 然 可 以 用 GL 加ODBC 作 一DLL 应 用 能 实 现 但 一 般 的 应 用 中 又 有 点 没 用 必 要 作 的 那 么 复 杂 实 际 上Developer/ 内 嵌 包TEXT_IO 为 我 们 提 供 了 一 个 更 简 单 的 方 法 几 乎 所 有 的 数 据 库 或 数 据 库 前 端 开 发 工 具 都 提 供 文 本 文 件 的 操 作 这 样 我 们 完 全 可 以 用 文 本 文 件 作 为 数 据 交 换 的 通 用 格 式 下 例 是 在 保 险 业 中 的 一 应 用 ( 要 用 到d kwfile dll 应 用)     DECLARE  filename varchar ( ):=null;  filenum text_io file_type;  linebuf varchar ( );  r_temp temp%rowtype;  BEGIN  filename:=d k_file_dialog show  ( 请选择缴费工资台帐原文件 c:\\ 源文件(* txt)|* txt| );  if filename is null then   raise form_trigger_failure; end if;  filenum:=text_io fopen(filename r );  loop  BEGIN  text_io get_line(filenum linebuf);  TEXT_IO PUT(linebuf);TEXT_IO NEW_LINE;  exception when no_data_found then  exit;  END;  BEGIN  v_temp l =substr(linebuf );  v_temp l := to_number(substr(linebuf ));  insert into temp(l l ) values (v_temp l v_temp l );  exception when others then   END;  < < end_loop > >  null;   end loop;  END;   FORMS 实 现 的 列 表 查 询 多 行 录 入 中 的 实 现 行 累 计      在PB 和VB 中 都 用 类 似 的 求 和 或 者 说 累 计 列 但 在 早 期 的FORMS 中 没 有 此 功 能 对 于 多 条 记 录 的 录 入 中 需 要 进 行 求 和 时 很 不 方 便 其 实 利 用FORM 的 触 发 子 很 容 易 实 现 如 下 例     块 b 项 l l l l   块 b 项 l l l l   块b 是B 的求和块  在块B 中的PRE_TEXT_ITEM中代码   IF SUBSTR(:SYSTEM CURRENT_ITEM ) IN ( L ) THEN   :GLOBAL ITEM_PREVALUES:=NAME_IN  ( B ||:SYSTEM CURRENT_ITEM);  END IF;  在块 B 中的POST_TEXT_ITEM中代码   DECLARE  num_cz number; 数据项在录入或修改前后的差值  num_hz number; 数据项在修改后的求合  BEGIN  if substr(:system current_item ) in ( l ) then   :em_nextvalues:=name_in  ( b ||:system current_item);  num_cz:=nvl(to_number(:em_nextvalues) )   nvl(to_number(:em_prevalues) );   新的和值  num_hz:=nvl(to_number(name_in( b_sum   ||:system current_item)) )+num_cz;  copy(to_char(num_hz) b ||:system current_item);   end if;  END;   通 过 前 后 两 值 的 比 较 很 容 易 的 实 现 一 个 较 通 用 的 求 和 算 法 另 外 又 一 次 用 到NAME_IN 和 COPY 减 少 了 代 码 量 在 块 上 实 现 触 发 子 也 减 少 了 代 码 维 护 工 作 量      REPORT 中 实 现 的 动 态 报 表( 一 张 表 利 用 多 个QUERY 语 句 生 成 一 样 格 式 的 多 张 报 表      在 做 报 表 时 经 常 要 遇 到 类 似 的 报 表 有 多 张 的 情 况 虽 然 通 过 简 单 的 拷 贝 可 以 减 少 编 程 的 工 作 量 但 在 后 期 的 维 护 中 却 增 加 了 难 度 一 张 表 改 完 后 又 改 另 一 张 表 进 行 大 量 的 重 复 劳 动 不 是 每 个 程 序 员 想 做 的 工 作 其 实 在REPORT 中 有 一 很 好 的 功 能 可 能 完 成 这 样 的 工 作 就 是REPORT 的 宏 代 换 如 下 例     两个表 tab_temp (a number b number c number)  tab_temp (d number e number f number)   作 两 张 报 表 表 头 一 样 但 查 询 不 一 样 分 别 取 自 两 个 表     建 一 用 户 参 数(user parameters) p_ 类 型 CHAR 长 度 缺 省 值 是 SELECT A B C FROM TAB_TEMP     建 一 查 询(QUERIES) 在 查 询 语 句 中 输 入 &P_     生 成 布 局 可 按 要 求 画 出 报 表    因 在 查 定 义 中 用 的 是&p_ 定 义 所 以 可 以 在 运 行 时 动 态 的 给P_ 传 递 能 数 只 要 能 满 足 其 列 名 定 义 即 可 例 可 用 如 下 语 句 代 入P_     SELECT D A E B F C FROM TAB_TEMP    这 样 就 生 成 了 一 个 多 功 能 报 表 把 编 写REPROT 工 作 从 简 单 的 布 局 编 辑 中 解 脱 出 来 而 投 入 到 实 质 性 的 工 作SQL 语 句 的 生 成 上 去              cha138/Article/program/Oracle/201311/18657

相关参考

知识大全 如何在Windows2000下彻底删除Oracle

如何在Windows2000下彻底删除Oracle  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 ORACLE Developer/2000 编程技巧

ORACLEDeveloper/2000编程技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 WIN2000下ORACLE计划任务自动备份方法

WIN2000下ORACLE计划任务自动备份方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Oracle 专业人员使用的SQL Server 2000

Oracle专业人员使用的SQLServer2000  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 UNIX和WINDOWS2000上的ORACLE的差异(1)

UNIX和WINDOWS2000上的ORACLE的差异(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 如何在Windosws 2000中安装JSP并访问Oracle

如何在Windosws2000中安装JSP并访问Oracle  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 如何在Windosws 2000中安装PHP4并访问Oracle

如何在Windosws2000中安装PHP4并访问Oracle  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 Oracle 10G Beta版在Win2000上安装的Bug

Oracle10GBeta版在Win2000上安装的Bug  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 Oracle 8i R2 (8.1.6) for Windows 2000 安装图解(2)

Oracle8iR2(8.1.6)forWindows2000安装图解(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让

知识大全 图解Oracle9i在Windows2000下的安装(1)

图解Oracle9i在Windows2000下的安装(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一