知识大全 技术笔记-Forms的错误控制

Posted

篇首语:农村四月闲人少,勤学苦攻把名扬。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 技术笔记-Forms的错误控制相关的知识,希望对你有一定的参考价值。

技术笔记-Forms的错误控制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   前言    对于新接触OracleDeveloper编程的同仁而言 当完成的系统交给用户时 经常性出现 没有保存需要修改 视图不可以更新 之类的错误提示是非常尴尬的事   系统交付用户使用后 用户一定会回馈一些BUG 然而让用户重现BUG又是一件非常艰难的工作   面对这些问题 解决的途径仍与其它开发工具一样 就是错误处理的控制 在其它语言中 我们可以通过类似On Error Do xxx 之类的语句来实现 但是在FORMS中 错误控制却往往令新进同仁头疼不已 不知该在哪里屏蔽错误信息   本文对Forms的错误处理进行简单论述和应用 并提供错误控制基本的程序包 以解决新进同仁对困惑 同时也抛砖引玉 希望各同仁可以不断充实本文涉及的程序包和错误字典 使之成为更加实用的共享代码       技术要点   复杂的问题 仍是由最简单的方法来实现    错误处理相关触发器   FORMS的错误 全部由On Error和On Message两个触发器来控制 比较麻烦的是这两个触发器有时会一起触发 有时又只触发一个   最好的办法 就是将触发器的响应程序做得一个程序包 在两个触发器中都进行控制      相关错误代码   在On Error触发器中 一般使用Error_Code Error_Text Error_Type系统变量 错误代号/错误名称/错误类型   在On Message触发器中 一般使用Message_Code Message_Text Message_Type系统变量   如果是Oracle后台错误 则通过DBMS_Error_Code和DBMS_Error_Text来获取相关信息       实现与功能    体系架构    创建字典表数据表和相关视图 存储在屏蔽的错误信息 此时程序的BUG信息仍可以<当然也可以不>显示于用户界面    创建错误日志数据表 存储用户使用过程中的每一个错误信息 该数据表可以为将来系统维护提供非常重要的支持    创建后台程序包 对错误进行处理 所谓 处理 在实例中是将错误信息写入错误日志 并判断字典表确认该错误信息是否显示于用户界面    创建前台程序包 对错误进行处理 所谓 处理 在实例中只是调用后台程序包而已     所有相关文件及代码 点击此处下载armok rar      创建数据库运行环境    ============================================================      Table: 错误日志数据表                      ============================================================   create table SYSTEM_ERRORLOG   (     SELKEY     NUMBER( )       not null     ISCONTROL    CHAR( )        null       SELCODE     NUMBER( )       null       SELTYPE     VARCHAR ( )     null       SELTEXT     VARCHAR ( )     null       SELMODULE    VARCHAR ( )     null       SELBLOCK    VARCHAR ( )     null       SELITEM     VARCHAR ( )     null       ORACLECODE   NUMBER( )       null       ORACLETEXT   VARCHAR ( )     null       SQLTEXT     VARCHAR ( )     null       SQLSTR     VARCHAR ( )     null       SELLOG     DATE          null       SELUSR     NUMBER( )       null       constraint PK_SYSTEM_ERRORLOG primary key (SELKEY)   )   /      ============================================================      Table: 字典表                       ============================================================   create table SYSTEM_DICT   (     DICTKEY     number( )       not null     DICTCLASS    nvarchar ( )     null       DICTPROP    nvarchar ( )     null       DICTCODE    nvarchar ( )     null       DICTNAME    nvarchar ( )     null       UPCLASSKEY   number( )       null       MEMO      nvarchar ( )    null       CRTUSR     number( )       null       CRTLOG     date          null       AMDUSR     number( )       null       AMDLOG     date          null       constraint PK_SYSTEM_DICT primary key (DICTKEY)   )   /      ============================================================      Table: 错误日志序列                       ============================================================    系统错误日志KEY 用于生成系统错误日志的主键   CREATE SEQUENCE SQ_System_SelKey INCREMENT BY START WITH     MAXVALUE E MINVALUE NOCYCLE     CACHE NOORDER   /      ============================================================      Table: 要屏蔽的错误信息                       ============================================================     Insert Into System_Dict   (DictKey DictClass DictProp DictCode DictName UpClassKey CrtLog CrtUsr AmdLog AmdUsr)     Values    ( ErrorMsg AppDict 不能在此创建记录 Null SysDate SysDate );     Insert Into System_Dict   (DictKey DictClass DictProp DictCode DictName UpClassKey CrtLog CrtUsr AmdLog AmdUsr)     Values    ( ErrorMsg AppDict 域被保护防止更新 Null SysDate SysDate );     Insert Into System_Dict   (DictKey DictClass DictProp DictCode DictName UpClassKey CrtLog CrtUsr AmdLog AmdUsr)     Values    ( ErrorMsg AppDict 不能在视图插入或更新数据 Null SysDate SysDate );     Insert Into System_Dict   (DictKey DictClass DictProp DictCode DictName UpClassKey CrtLog CrtUsr AmdLog AmdUsr)     Values    ( ErrorMsg AppDict 不能更新此记录 Null SysDate SysDate );     Insert Into System_Dict   (DictKey DictClass DictProp DictCode DictName UpClassKey CrtLog CrtUsr AmdLog AmdUsr)     Values    ( ErrorMsg AppDict 没修改需要保存 Null SysDate SysDate );     Insert Into System_Dict   (DictKey DictClass DictProp DictCode DictName UpClassKey CrtLog CrtUsr AmdLog AmdUsr)     Values    ( ErrorMsg AppDict 没有查询到记录 Null SysDate SysDate );     Insert Into System_Dict   (DictKey DictClass DictProp DictCode DictName UpClassKey CrtLog CrtUsr AmdLog AmdUsr)     Values    ( ErrorMsg AppDict 在第一条记录 Null SysDate SysDate );     Insert Into System_Dict   (DictKey DictClass DictProp DictCode DictName UpClassKey CrtLog CrtUsr AmdLog AmdUsr)     Values    ( ErrorMsg AppDict 已查询到最后一条记录 Null SysDate SysDate );      ============================================================      Table: 要屏蔽的错误信息清单视图                   ============================================================     Create Or Replace View VW_System_JumpMsg_Qry AS   Select    创建字典视图 要屏蔽的系统信息       DictKey       DictClass       DictProp       DictCode       DictName     From System_Dict     Where       Upper(DictClass)=Upper( ErrorMsg )       And Upper(DictProp)=Upper( AppDict )       Order By DictKey   /      ============================================================      Table:错误信息后台程序包                   ============================================================   create or replace package PKG_System_Assert is       Author : RUBYXUE     Created : : :     Purpose : 系统维护         登记前台系统的错误     Function FN_SystemErrorLog      (P_SelCode Number        P_SelType Varchar cha138/Article/program/Oracle/201311/17570

相关参考

知识大全 [范例]怎样判断画布中有重复记录(Forms 6i)

[范例]怎样判断画布中有重复记录(Forms6i)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Asp.net中Forms验证的角色验证授权(二)

Asp.net中Forms验证的角色验证授权(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Asp.Net Forms验证实例

Asp.NetForms验证实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以前开发项目时经

知识大全 ORACLE*Forms 中List Item 加载数据的两种方法

ORACLE*Forms中ListItem加载数据的两种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 网路连不上是什么问题,我家是笔记本直接插网线的,连线网路时显示错误651.怎么解决

网路连不上是什么问题,我家是笔记本直接插网线的,连线网路时显示错误651.怎么解决?错误程式码651意思为您的调变解调器(或其它连线装置)报告了一个错误。既未找到指定的埠。解决办法:1、远端访问记事簿

知识大全 一个简单的ASP.NET Forms 身份认证

一个简单的ASP.NETForms身份认证  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  当访问

知识大全 一个简单的ASP.NET Forms 身份认证的实例方法

一个简单的ASP.NETForms身份认证的实例方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 我家的电信宽带用台式可以连接,但是连到我的笔记本上就提示错误691,无法连接,我该怎么办。、

你好!我家的电信宽带用台式可以连接,但是连到我的笔记本上就提示错误691,无法连接,我该怎么办。、1、查看你的网卡驱动,2、看看用户名和密码,3、新建连接向导。我家的是电信宽带光纤,在台式机上可以宽带

使用笔记本电脑时应避免覆盖,做好散热,防止笔记本电脑过热发生自燃。()

使用笔记本电脑时应避免覆盖,做好散热,防止笔记本电脑过热发生自燃。()A、正确B、错误正确答案:A

使用笔记本电脑时应避免覆盖,做好散热,防止笔记本电脑过热发生自燃。()

使用笔记本电脑时应避免覆盖,做好散热,防止笔记本电脑过热发生自燃。()A、正确B、错误正确答案:A