最近のアクセス:
AfterValidate トリガーイベント

AfterValidate トリガーイベントをトランザクションのルールに追加した場合、ルールに関連付けられているレベルの各インスタンスについて、そのインスタンスがレベルに関連付けられている物理テーブルに物理的に保存 (挿入、更新、または削除) される直前に、そのルールを実行するように指定されます。このトリガーイベントは、データベースの特定の操作 (挿入、更新、削除) を暗示的に取得しているわけではありません。ユーザーが確認し、関係するテーブルを書き込む直前に実行されます。           

構文

有効なトランザクションのルール [ IF condition ] [ ON AfterValidate ] ;
入力値の説明:
condition
         有効な論理条件です。

[ Autonumber ] プロパティによって、主キーの項目属性に自動的に番号を付与するのではなく、特定の基準に従った特殊な記数法 (英数字) をユーザーが必要としたとします。このため、プロシージャーオブジェクトをプログラミングすることで、これを解決する必要があります。 
このナンバリングプロシージャーを呼び出すために、主キーに特殊な記数法を必要とするトランザクション (Flight トランザクションとします) で、次のようなルールを定義する必要があります:
FlightId = NextFlightNumber() if Insert on AfterValidate;
この時点では、NextFlightNumber プロシージャーコードを把握することは重要ではありません。Flight トランザクションで定義されているこのルールを参照した場合、次のことが分かります:
  1. プロシージャーは主キーの値を返します。
  2. ユーザーがフライトを挿入する場合にルールが実行されます (if insert 条件が明示的にルールに追加されるため)。
  3. 第 1 レベルのデータが FLIGHT 物理テーブルにレコードとして挿入される直前に、ルールが実行されます (トリガーイベント: on AfterValidate であり、ルール内で参照される項目属性だけが第 1 レベルのトランザクションに属しているため)。

  • プロシージャーの呼び出しはレコードをテーブルに挿入する前に実行されるため、このルールの定義は適切です。つまり、ユーザーが挿入を確認しているものの、実際にはまだ挿入が行われていない状態です。このため、プロシージャーで返された値が、Flight レコード書き込み時に、FlightId 項目属性に割り当てられます。
  • 項目属性がルールで指定されていない場合は、第 1 レベルが指定されたものとして、ルールがトリガーされます。 

適用範囲

オブジェクト: Transaction

互換性

After(Confirm) トリガーイベントは、下位互換性を保つために残されています。代わりに AfterValidate イベントを使用することを強くお勧めします。詳しくは、「ルールをトリガーするイベント」を参照してください。

参考情報

トランザクションルール
ルールをトリガーするイベント

 







サブページ
Created: 14/09/18 03:44 by Admin Last update: 21/05/20 04:39 by Admin
カテゴリ
Powered by GXwiki 3.0