メインコンテンツまでスキップ
バージョン: 開発中

SAVE RECORD

SAVE RECORD {( aTable )}

引数説明
aTableTableカレントレコードを保存するテーブル, または 省略時、デフォルトテーブル

説明

SAVE RECORD は、カレントプロセスのaTableのカレントレコードを保存します。カレントレコードが存在しない場合、SAVE RECORD は何も行いません。

SAVE RECORD は、プログラムコードを使って新しく作成または修正したレコードを保存するために使用します。フォームでユーザが修正し確定したレコードは、SAVE RECORD で保存する必要はありません。ユーザによってフォーム中で修正されたレコードがキャンセルされた場合でも、SAVE RECORD で保存することができます。

レコード中のフィールドデータが変更されていない状態で SAVE RECORD コマンドを呼び出しても、コマンドはなにも行いません (トリガは呼び出されません)。

SAVE RECORD が必要とされる場合を次に示します:

  • CREATE RECORDDUPLICATE 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
トリガ

プロパティ

コマンド番号53
スレッドセーフである