4D v12.4Database event |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v12.4
Database event
|
Database event -> 戻り値 | ||||||||
引数 | 型 | 説明 | ||||||
戻り値 | 倍長整数 |
![]() |
0 トリガ実行サイクル外 1 新規レコード保存時 2 既存レコード保存時 3 レコード削除時 | |||||
Database event コマンドがトリガ内で呼び出されると、データベースイベントのタイプ、つまりそのトリガが起動された理由を示す数値を返します。
定数 | 型 | 値 |
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 コマンドを使用します。
Database event コマンドを使用して、以下のようにトリガを作成します。
`[anyTable] 用のトリガ
C_LONGINT($0)
$0:=0 `データベースリクエストが許可されると仮定する
Case of
:(Database event=On Saving New Record Event)
`新規に作成されたレコードの保存のために適切な動作を実行する
:(Database event=On Saving Existing Record Event)
`既存のレコードの保存のために適切な動作を実行する
:(Database event=On Deleting Record Event)
`レコードの削除のために適切な動作を実行する
End case
プロダクト: 4D
テーマ: トリガ
番号:
369
変更: 4D v11 SQL Release 2
In transaction
Trigger level
TRIGGER PROPERTIES
トリガ