Old
Old ( aField ) -> 戻り値
引数 | 型 | 説明 | |
---|---|---|---|
aField | Field | → | 元の値を取得するフィールド |
戻り値 | Expression | ← | 元のフィールド値 |
説明
Old コマンドは、プログラムにより値が代入されたり、データ登録で修正される前にaFieldに納められていた値を返します。
テーブルのカレントレコードを移動するたびに、4Dは新しいカレントレコードがメモリーにロードされた時点での複製された“イメージ”をメモリ上に作成し、管理します。レコードを修正する際には、レコードの実際のイメージを使います。複製イメージではありません。カレントレコードを移動すると、このイメージは破棄されます。
Oldはこの複製イメージの値を返します。すなわち、既存のレコードに対しては、ディスク上に保存されているフィールドの値を返すということです。新しく作成されたレコードの場合、Oldはそのフィールドタイプに応じた空の値を返します。例えば、aFieldが文字フィールドの場合、Oldは空の文字列を、数値フィールドならOldは0を返します。
Oldは、aFieldがメソッドまたはデータ入力時にユーザによって修正された場合にも機能します。
Oldは、すべてのフィールドタイプに適用できます。
フィールドの元の値を復元するには、Oldから返された値を割り当てます。
Note: 技術的な理由により、ピクチャやBLOBタイプのフィールドの場合、Oldから返され る式を直接他のコマンドの引数としては利用できません。他の引数を経由する必要があります。例えば:
//Do NOT write (causes a syntax error):
$size :=BLOB size(Old([theTable]theBlob)) //INCORRECT
//Write:
$oldBLOB:=Old([theTable]theBlob)
$size :=BLOB size($oldBLOB) //CORRECT