-3

データベース内でアイテムが一意になったことを確認したいのですが、データベースに存在するアイテムがクリアされている必要があります(このアイテム)。

そのため、このアイテムにはトリガー when-validate-item を使用し、フォーム グローバルにはトリガー when-timer-expired を使用します。

これは私のコードです:

//トリガー when-Validate-item :

declare
  i number;    
  vTimer TIMER;
begin
  IF //condition then
      i := show_alert('ERROR');    
      /* Create a timer with a 10 Millisecond delay */
      vTimer :=create_timer('TEMP',10,no_repeat);
  END IF;
end;

//タイマーが切れたときにトリガー

GO_BLOCK ('name_block');    
:name_block.item1:=NULL;
DELETE_TIMER('TEMP');

しかし、実行時に次のエラーが発生します。

FRM-40202: フィールドに入力する必要があります

4

1 に答える 1

3
  1. 一意性を強制するには、テーブルで一意制約を使用する必要があります。

  2. アイテムをクリアするには、wvi トリガーで NULL を割り当てるだけです。タイマーは必要ありません。ただし、これはユーザーを混乱させ、イライラさせる可能性があるため、お勧めできません。

  3. タイマーが必須としてマークされたアイテムから離れようとするため、おそらく FRM-40202 が発生しています。

于 2012-12-30T06:05:12.813 に答える