熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

性檢查的簡單快捷方法(利用Post方法和Timer)

2013-11-13 15:55:31  來源: Oracle 

   前言
  唯一值檢查在許多人眼中是一個簡單而又不能再簡單的問題但是FORMS中由於OracleD
  eveloper體系架構的問題成為開發人員的一塊心病
  當然進行唯一值檢查的方式多種多樣包括對數據塊的輪詢或利用表變量實現但這些方
  法都有相同的弊病=>效率低下和實現方法過於繁雜
  本文利用FORMS的POST命令和後台Select Count語句實現唯一值檢查為各位同仁提供多一種選擇的余地
  
   技術要點
   POST
  POST命令間將前台的數據傳到後台但是不進行COMMIT動作由於在同一個SEASON所以Select Count語句可以對未Commit_form的數據進行檢查
  
   受限過程的解決方法
  由於POST是受限過程無法在BLOCK的When_Valid_Record中使用本文利用Timer實現POST過程
  即When_Valid_Record創建Timer由Timer執行POST的動作
  
   Select Count
  此語句不必多說就是判斷某數據是否重復
  
   實例參考
   創建數據表
  create table TESTCHECKUNIQUE
  (
  T VARCHAR() Primary Key
  T VARCHAR()
  );
  設定T為要檢查的唯一值
  
   FORMS
   創建表級的When_Timer_Expired對數據進行POST動作
  Declare
  Begin
  IF Upper(Get_Application_Property(TIMER_NAME)) = Upper(Timer_Post) THEN
  Post;
  END IF;
  End;
  
   創建數據塊級的When_Valid_Record創建Timer
  Declare
  Timer_Post Timer;
  Begin
  Timer_Post:=Create_Timer(Timer_Post NO_REPEAT);
  End;
  
   創建數據項級的When_Valid_Item對數據進行檢查性檢查
  Declare
  L_Count Number;
  Begin
  Select Count()
  Into L_Count
  From TestCheckUnique
  Where T=:TestCheckUniqueT;
  If L_Count> Then
  Message(字段輸入重復值);
  Raise Form_Trigger_Failure;
  End If;
  End;
  
  點擊此處下載armokrar
From:http://tw.wingwit.com/Article/program/Oracle/201311/17523.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.