知识大全 技术笔记-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.NetForms验证实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 以前开发项目时经
知识大全 ORACLE*Forms 中List Item 加载数据的两种方法
ORACLE*Forms中ListItem加载数据的两种方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
知识大全 网路连不上是什么问题,我家是笔记本直接插网线的,连线网路时显示错误651.怎么解决
网路连不上是什么问题,我家是笔记本直接插网线的,连线网路时显示错误651.怎么解决?错误程式码651意思为您的调变解调器(或其它连线装置)报告了一个错误。既未找到指定的埠。解决办法:1、远端访问记事簿
一个简单的ASP.NETForms身份认证 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 当访问
知识大全 一个简单的ASP.NET Forms 身份认证的实例方法
一个简单的ASP.NETForms身份认证的实例方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 我家的电信宽带用台式可以连接,但是连到我的笔记本上就提示错误691,无法连接,我该怎么办。、
你好!我家的电信宽带用台式可以连接,但是连到我的笔记本上就提示错误691,无法连接,我该怎么办。、1、查看你的网卡驱动,2、看看用户名和密码,3、新建连接向导。我家的是电信宽带光纤,在台式机上可以宽带
使用笔记本电脑时应避免覆盖,做好散热,防止笔记本电脑过热发生自燃。()
使用笔记本电脑时应避免覆盖,做好散热,防止笔记本电脑过热发生自燃。()A、正确B、错误正确答案:A
使用笔记本电脑时应避免覆盖,做好散热,防止笔记本电脑过热发生自燃。()
使用笔记本电脑时应避免覆盖,做好散热,防止笔记本电脑过热发生自燃。()A、正确B、错误正确答案:A