Form中触发器trigger的执行层次关系
来源:互联网 发布:win10软件闪退 编辑:程序博客网 时间:2024/06/05 10:09
http://yedward.net/?id=56
Oracle Form的触发器模型类似Windows系统的事件驱动模型,即当某个事件,比如鼠标Click,发生的时候,Forms Engine会去找是否有相应的代码,如果有,就执行之,没有的话就忽略该事件。当界面上某个动作发生的时候,Forms Engine会把一系列要发生的事件按照“先后关系”压入执行堆栈,然后再从堆栈中一个个事件POP出来逐一执行,任一事件遇到Raise Form-Trigger-Failure,Forms Engine就停止执行、清空堆栈、Rollback事务、设置光标回合适的Item。
当一个事件发生的时候,Forms Engine可一并触发由低到高3个级别(Item、Block、Form)的同名事件,触发顺序由定义低级别的事件时所设置的执行层次决定。
执行层次关系:
(1)Override模式,默认模式,不再触发高级别事件
(2)Before模式,触发完本级别的事件后,再触发高级别事件
(3)After模式,先触发高级别事件,再回来触发本级别事件
当然了,如果某一层次我们没定义事件代码,Forms Engine就跳过该级别,直接进入下一级别。
此外,Block中任何Item发生的事件,都可能引发该Block级事件,所以在Block级写本属于Item级的事件,要特别性能问题;Form级事件更有类似问题。
例子(假设):
(1)Item XXX的WHEN-VALIDATE-ITEM的代码是“代码1”,模式是“After”;
(2)Item XXX所在BlockWHEN-VALIDATE-ITEM的代码是“代码2”,模式是“Override”;
(3)Form级WHEN-VALIDATE-ITEM的代码是“代码3”。
这是三个层次的同名时间,由低到高来看,item级模式是after,则item在block和form以后执行;block级模式是override,则不再执行比block高(form)的同名触发器,只执行block级触发器;form级的模式没有设置,默认为override,但是由于block级已经是override,所以form级触发器不执行。所以,最后执行的顺序是先执行block级再执行item级,不执行form级。如果在某一事件如pre-block中raise-trigger-failure,那么form engine就会停止其后面的所有事件的执行,并认为“光标从块A到块B”失败,把光标仍然留在块A中。
- Form中触发器trigger的执行层次关系
- Form中Trigger的执行顺序
- Form Builder开发中触发器的执行层次(Execution Hierarchy)
- Form中Trigger的执行顺序(转)
- Form中Trigger的执行顺序(转)
- Form触发器的执行顺序
- Form Trigger执行顺序
- FORM trigger执行顺序
- Oracle EBS中有关Form的触发器的执行顺序
- Oracle EBS中有关Form的触发器的执行顺序
- Oracle EBS中有关Form的触发器的执行顺序
- Oracle EBS中有关Form的触发器的执行顺序
- Oracle EBS中有关Form的触发器的执行顺序
- Oracle EBS中有关Form的触发器的执行顺序
- MySQL中查看触发器trigger的方法
- Oracle Form Trigger执行顺序
- form 触发器的层次Before、Override、after的区别
- form 触发器的层次Before、Override、after的区别 .
- 关于适配的官方介绍
- MS SQL Server的存储过程签名
- android dialog 获得edittext的值 避免一些弹出窗口的错误
- 在Firefox开发者的上使用CSS usage,不显示操作按钮的问题
- java查找最大相同子串
- Form中触发器trigger的执行层次关系
- 杭电acm1027(无思路)
- js重定向的两种方法,原页与新开页
- oracle时间格式字符串转化为时间
- centos7 mysql服务器安装
- mysql优化建议
- Android开机启动速度优化 && app启动速度优化
- 自动创建两个临时文件的函数,以及其创建的文件函数的默认属性
- 黑马程序员学习(十一)GUI学习