• Oracle Form 中 COMMIT 的使用


    1. COMMIT_FORM

    先针对form上面的数据变动进行commit,然后对于代码中的类似DML语句也进行提交;

    如果form上面的数据变动和代码中的数据变动有冲突,最后以FORM上的为准。

    适用:一般来在直接修改FORM上的数据,就使用commit_form。

    2.COMMIT

    form和数据库进行提交。如果form上面的数据和代码中的数据变动有冲突,最后以FORM上的为准。

    适用:一般来在直接使用DML代码修改数据时,就使用commit。

    3. DO_KEY('COMMIT_FORM')

    它会首先寻找form下的triggers中的KEY-COMMIT触发器,并执行KEY-COMMIT触发器里面的代码,如果没有这个触发器,则会做COMMIT_FORM一样的操作。

    适用:只是更改了一下代码执行的先后顺序,没有什么实质区别。

    4. FORMS_DDL('COMMIT')

    只针对代码中insert、update、delete语句进行提交,form上面的数据不提交。

    适用:一般不用。

    DG 里面提到:

    Replace COMMIT with do_key('commit_form'), This routine raises the exception FORM_TRIGGER_FAILURE if there is an invalid record.

    COMMIT时触发器执行顺序:

    (1).KEY-COMMIT

    (2).PRE-COMMIT

    (3).PRE/ON/POST DELETE

    (4).PRE/ON/POST UPDATE

    (5).PRE/ON/POST INSERT

    (6).ON-COMMIT

    (7).Post DataBase Commit

    5. QUIETCOMMIT

    oracle form "悄悄" 提交。如果使用commit_form的话会弹出信息提示"没有修改需要保存"或者"XXX记录已保存"。如果你不想提示出现,则可以调用函数

    app_form.quietcommit。由于是一个function, 所以需要定义一个变量用来接收返回值, 返回值类型为boolean,当true的时候就说明成功, 否则commit失败。

    将系统的消息级别改为较低级别也可调用如下过程:

    PROCEDURE docommit IS
      old_level VARCHAR2(2);
    BEGIN
      old_level := name_in('system.message_level');
      copy('5', 'system.message_level');
      COMMIT;
      copy(old_level, 'system.message_level');
    END;

     

  • 相关阅读:
    arthas常用命令记录
    idea 的 http-client
    springboot 接口层参数校验 自定义参数校验
    Spring AOP 实现——使用annotation、pointcut、aspect
    Redis 热点名词
    SpringCloud注册发现配置
    【设计模式】-行为型-11-解释器模式
    【设计模式】-行为型-10-备忘录模式
    【设计模式】-创建型-9-访问者模式
    Kubernetes运行原理
  • 原文地址:https://www.cnblogs.com/Cqiang/p/2945519.html
Copyright © 2020-2023  润新知