求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; 展开
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; 展开
1个回答
展开全部
这个是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自己生成的代码,除非你有特殊要求,否则不用改动
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自己生成的代码,除非你有特殊要求,否则不用改动
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询