求oracle form代码解释

PROCEDUREQuery_Master_Details(rel_idRelation,detailVARCHAR2)ISoldmsgVARCHAR2(2);--Old... PROCEDURE Query_Master_Details(rel_id Relation,detail VARCHAR2) IS
oldmsg VARCHAR2(2); -- Old Message Level Setting
reldef VARCHAR2(5); -- Relation Deferred Setting
BEGIN
reldef := Get_Relation_Property(rel_id, DEFERRED_COORDINATION);
oldmsg := :System.Message_Level;
IF reldef = 'FALSE' THEN
Go_Block(detail);
Check_Package_Failure;
:System.Message_Level := '10';
Execute_Query;
:System.Message_Level := oldmsg;
ELSE
Set_Block_Property(detail, COORDINATION_STATUS, NON_COORDINATED);
END IF;

EXCEPTION
WHEN Form_Trigger_Failure THEN
:System.Message_Level := oldmsg;

Procedure Check_Package_Failure IS
BEGIN
IF NOT ( Form_Success ) THEN
RAISE Form_Trigger_Failure;
END IF;
END;

其中以下怎么解释
IF reldef = 'FALSE' THEN
Go_Block(detail);
Check_Package_Failure;(哪个block 不成功了?)
:System.Message_Level := '10';
Execute_Query;(执行的是哪里的查询)
:System.Message_Level := oldmsg;(怎么给oldmsg赋值?)
ELSE
Set_Block_Property(detail, COORDINATION_STATUS, NON_COORDINATED);
END IF;
Procedure Check_Package_Failure IS
BEGIN
IF NOT ( Form_Success ) THEN
RAISE Form_Trigger_Failure END IF;;(这个不就是上面的Check_Package_Failure吗,直接引用不行吗)
END;
最后面的
Procedure Check_Package_Failure IS
BEGIN
IF NOT ( Form_Success ) THEN
RAISE Form_Trigger_Failure END IF;;(这个不就是上面的Check_Package_Failure吗,直接引用不行吗)
END;
应该改为下面的语句
EXCEPTION
WHEN Form_Trigger_Failure THEN( Form_Trigger_Failure 是哪个form 哪个触发器失败?)
:System.Message_Level := oldmsg;
RAISE;
END Query_Master_Details;
展开
 我来答
百度网友e4b2715
2011-07-08 · TA获得超过191个赞
知道小有建树答主
回答量:313
采纳率:94%
帮助的人:127万
展开全部
这个是FORM定义了关系后自动生成的代码
IF reldef = 'FALSE' THEN
Go_Block(detail);
Check_Package_Failure;(哪个block 不成功了?) --看FORM自定义的程序单元
:System.Message_Level := '10';
Execute_Query;(执行的是哪里的查询)--执行DETAIL BLOCK的查询,看DETAIL定义的查询条件
:System.Message_Level := oldmsg;(怎么给oldmsg赋值?)这个不是给OLDMSG赋值,而是把OLDMSG的值赋给:System.Message_Level
ELSE
Set_Block_Property(detail, COORDINATION_STATUS, NON_COORDINATED);
END IF;
Procedure Check_Package_Failure IS
BEGIN
IF NOT ( Form_Success ) THEN
RAISE Form_Trigger_Failure END IF;;(这个不就是上面的Check_Package_Failure吗,直接引用不行吗) --封装,直接引用当然可以,但是这种更好
END;

你最后面的修改完全不知所云
EXCEPTION是ORACLE的异常
NOT ( Form_Success ) 是FORM的异常,两者不等同

Form_Trigger_Failure是抛出FORM的异常,中止之后所有活动

另外再说一下,这个是FORM自己生成的代码,除非你有特殊要求,否则不用改动
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式