4D v14.3Trigger event |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
Trigger event
|
Trigger event -> 戻り値 | ||||||||
引数 | 型 | 説明 | ||||||
戻り値 | 倍長整数 |
![]() |
0: トリガー実行サイクル外 1: 新規レコード保存時 2: 既存レコード保存時 3: レコード削除時 |
|||||
Trigger eventコマンドがトリガー内で呼び出されると、データベースイベントのタイプ、つまりそのトリガーが起動された理由を示す数値を返します。
Trigger Eventsテーマに以下のような定義済み定数があります。
定数 | 型 | 値 |
On Deleting Record Event | 倍長整数 | 3 |
On Saving Existing Record Event | 倍長整数 | 2 |
On Saving New Record Event | 倍長整数 | 1 |
トリガーのカスケードを呼び出す場合、4Dには使用可能なメモリの容量以外に制限はありません。トリガーの実行を最適化するために、データベースイベントだけでなく、トリガーがカスケードされて起動される際の呼び出しのレベルに基づいて、トリガーのコードを記述することもできます。例えば[Invoices] テーブルに対する削除データベースイベントの中で、[Invoices] レコードの削除が、削除された [Customers] レコードに関連したすべての送り状の削除にともなうものである場合には、[Customers] 総売上げフィールドの更新をスキップすることもできます。これを実行するにはTrigger levelとTRIGGER PROPERTIESコマンドを使用します。
Trigger eventコマンドを使用して、以下のようにトリガを作成します。
`[anyTable] 用のトリガー
C_LONGINT($0)
$0:=0 `データベースリクエストが許可されると仮定する
Case of
:(Trigger event=On Saving New Record Event)
`新規に作成されたレコードの保存のために適切な動作を実行する
:(Trigger event=On Saving Existing Record Event)
`既存のレコードの保存のために適切な動作を実行する
:(Trigger event=On Deleting Record Event)
`レコードの削除のために適切な動作を実行する
End case
プロダクト: 4D
テーマ: トリガ
番号:
369
変更: 4D v11 SQL Release 2
名称変更: 4D v13
In transaction
Trigger level
TRIGGER PROPERTIES
トリガ
ランゲージリファレンス ( 4D v14 R3)
ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v13.5)
ランゲージリファレンス ( 4D v14.3)
ランゲージリファレンス ( 4D v14 R4)
Inherited from : Database event ( 4D v11 SQL Release 6)