SAVE RECORD
SAVE RECORD {( aTable )}
引数 | 型 | 説明 | |
---|---|---|---|
aTable | Table | → | カレントレコードを保存するテーブル, または 省略時、デフォルトテーブル |
説明
SAVE RECORD は、カレントプロセスのaTableのカレントレコードを保存します。カレントレコードが存在しない場合、SAVE RECORD は何も行いません。
SAVE RECORD は、プログラムコードを使って新しく作成または修正したレコードを保存するために使用します。フォームでユーザが修正し確定したレコードは、SAVE RECORD で保存する必要はありません。ユーザによってフォーム中で修正されたレコードがキャンセルされた場合でも、SAVE RECORD で保存することができます。
レコード中のフィールドデータが変更されていない状態で SAVE RECORD コマンドを呼び出しても、コマンドはなにも行いません (トリガは呼び出されません)。
SAVE RECORD が必要とされる場合を次に示します:
- CREATE RECORD や DUPLICATE RECORDで作成した新しいレコードを保存する場合
- RECEIVE RECORDで取得したレコードを保存する場合
- メソッドによって修正したレコードを保存する場合
- _o_ADD SUBRECORD、_o_CREATE SUBRECORD、_o_MODIFY SUBRECORD によって作成または修正したサブレコードを含むレコード保存する場合
- カレントレコードを変更するようなコマンドを実行する前に、データ入力途中で表示されているレコードを保存する場合
- データ入力途中でカレントレコードを保存する場合
受け入れられたフォームのOn ValidateイベントでSAVE RECORD を実行してはいけません。もし、これを実行すると、レコードが2回保存されてしまいます。
注: 編集されたオブジェクトフィールドを含むレコードを保存する場合、一般的にはSAVE RECORD を呼び出す前に4Dにそれを明示的に通知する必要があります。詳細な情報については、オブジェクトフィールドの保存 の章を参照して下さい。
例題
以下の例はドキュメントからレコードを読み込むメソッドの一部です。このコードはレコードを受信し、この後受信が正常に行われると、レコードを保存します:
RECEIVE RECORD([Customers]) // ディスクからレコードを受信
If(OK=1) // レコードを正しく受信したら…
SAVE RECORD([Customers]) // 保存する
End if
参照
CREATE RECORD
Locked
トリガ