首页 > 解决方案 > 如何在 oracle 表单 d2k 应用程序中计算页面命中

问题描述

如何在 oracle 表单 d2k 应用程序中计算页面点击或访问者数量?

标签: oracleoracleforms

解决方案


这是一个选项:

  • 创建一个表,例如

    create table hits (form_name varchar2(30), hits number);
    
  • 创建一个用于维护该表的存储过程。这将是一个自治事务过程(这样你就可以commit在不影响主事务的情况下),它会锁定hits表(它会影响多用户环境中的执行吗?不应该,它真的很快)。

    create or replace procedure p_hits (par_form_name in varchar2) 
    is
      pragma autonomous_transaction;
    begin
      lock table hits in exclusive mode;
    
      merge into hits h
        using (select par_form_name form_name from dual) x
        on (x.form_name = h.form_name)
        when matched then 
          update set h.hits = h.hits + 1
        when not matched then 
          insert (form_name, hits) values (par_form_name, 1);
    
        commit;
    end p_hits;
    /    
    
  • WHEN-NEW-FORM-INSTANCE在表单的表单级触发器中调用该过程:

    p_hits(:system.current_form);
    

这就是全部;查询hits表以查看其内容。


推荐阅读