Oracle Forms Server 疑难排解Oracle 技术白皮书1 CHECKING FOR FORM_SUCCESS AFTER CALLING A FORMS BUILT-IN
在调用一个form后,通过 FORM_SUCCESS 内置子程序返回一个可以表示最近一个表单操作成功与否的布尔值,其值为TRUE(成功)和FALSE(失败、严重错误)。假如内置子程序没有成功执行,应该触发FORM_TRIGGER_FAILURE异常处理程序。 FORM_FAILURE/FORM_FATAL 其中 FORM_FAILURE是与FORM_SUCCESS对应,而FORM_FATAL的结果值为TRUE(严重错误)和FALSE(成功、失败)2 TROUBLESHOOTING WITH “QUICK AND DIRTY” TECHNIQUES 四种技巧:commenting out code, using the “message” built-in, using the “debug_messages=yes” runtime option, and using the “break” built-in. a)注释出你怀疑有问题的代码 注释掉一行代码用:"--",注释掉一段代码用:"/**/".假如注释掉一个完整的触发器和程序单元,那么你至少需要包括该代码: null; 当修复了问题和查出问题所在处时,千万别忘了把没有用注释去掉 b)利用message内置子程序 例如: message('The table contains 'to_char(empcount)' employees');
synchronize;
message('Runtotals = ':control.runtotals);
--Runtotals will be either“YES” or “NO”
synchronize;
message('Beginning Runtotals program unit');
synchronize; message 可以在消息行上显示指定的文本,而且需要把任何数字和日期值转换为文本内型,变量保持在单引号外面,用""来连接其他字符串 synchronize 将显示器的屏幕与表单的内部状态同步 ,从而确保在代码内的某个消息显示在要求的位置 pause 可以替代synchronize,它不仅使显示同步,而且暂停程序处理,直到(强制)用户按了一个功能键为止 c)利用表单的"DEBUG_MESSAGES=YES" runtime选项 可以从菜单设置:Tools -> preferences,也可以从命令行设置:
On windows:
c:\orant\bin\ifrun60.exe module=myform userid=scott/tiger
debug_messages=yes On Unix:
f60runm module=myform userid=scott/tiger debug_messages=yes d)利用BREAK 内置子程序 用于中断表格执行并显示调试器,用户可以通过调试器来查看form、program、全局、系统变量--今天已经看完了,后面的笔记也顺便写了,因为没有及时保存,导致在更新数据时全部丢失,也使几个小时的心血全部白流! ;-(~~~~~~~~