SqlComputeOnChange
使用法
プロパティをいつ再計算するかを指定するには、以下の構文を使用します。
Property name As classname [ SqlComputed, SqlComputeCode=sqlcomputecode, SqlComputeOnChange = propertynames ];
sqlcomputecode は "SqlComputeCode" で説明しています。propertynames は、単一のプロパティ名または複数のプロパティ名のコンマ区切りリストのいずれかです。この値には、値 %%INSERT または %%UPDATE を含めることもできます。
SqlFieldname によって与えられる値ではなく、実際のプロパティ名を使用する必要があることに注意してください。
詳細
このキーワードは、トリガされる計算プロパティにのみ適用可能であり、他のプロパティでは無視されます。(トリガされる計算プロパティは、SqlComputed が True で、SqlComputeCode が指定されているが、Calculated および Transient が両方とも False のプロパティです。"Caché オブジェクトの使用法" の “計算プロパティの定義” を参照してください。)
このキーワードでは、このプロパティを再計算する条件を制御します。以下の場合に、再計算が行われます。
-
指定されているプロパティの変更
-
トリガ・イベントの発生
キーワードに %%INSERT または %%UPDATE の値が指定されている場合は、INSERT 呼び出しまたは UPDATE 呼び出しが、フィールド (プロパティ) の値のイベント・トリガ計算をそれぞれ指定します。
-
%%INSERT を指定すると、Caché は行がテーブルに挿入されたときにフィールドの値を計算します。Caché は、SQLComputeCode キーワードで指定されたコードを呼び出して、値を設定します。SQLComputeCode が同じフィールドを入力値として使用している場合、Caché はそのフィールドに対して明示的に指定された値を使用します。値が指定されていない場合、Cache は InitialExpression (これが指定されている場合) または NULL (InitialExpression が指定されていない場合) を使用します。
-
%%UPDATE を指定すると、Caché は行がテーブルに挿入されたときにフィールドの値を計算し、行が更新されたときにそれを再計算します。どちらの場合も、Caché は、SQLComputeCode キーワードで指定されたコードを呼び出して、値を設定します。SQLComputeCode が同じフィールドを入力値として使用している場合、Caché はそのフィールドに対して明示的に指定された値を使用します。値が指定されていない場合、Caché は前のフィールド値を使用します。
イベント・トリガ計算は、検証と正規化の直前に発生します (検証と正規化の後にデータベースへの値の書き込みが続きます)。
フィールド値のイベント・トリガ計算は、プロパティ値を計算するコードによっては、プロパティに対して明示的に指定されている値をオーバーライドすることがあります。
既定値
SqlComputeOnChange キーワードの既定値は、空の文字列です。
関連項目
-
このドキュメントの “プロパティ定義”
-
Caché オブジェクトの使用法 の “リテラル・プロパティの定義と使用”
-
Caché オブジェクトの使用法 の “コレクションを使用した作業”
-
Caché オブジェクトの使用法 の “ストリームを使用した作業”
-
Caché オブジェクトの使用法 の “オブジェクト値プロパティの定義と使用”
-
Caché オブジェクトの使用法 の “リレーションシップの定義と使用”
-
Caché オブジェクトの使用法 の “コンパイラ・キーワードの概要”