FireDAC.Comp.DataSet.TFDDataSet.Constraints

提供:RAD Studio API Documentation

Delphi

property Constraints stored IsCS;

C++

__property Constraints = {stored=IsCS};

プロパティ

種類 可視性 ソース ユニット 親
property public
FireDAC.Comp.DataSet.pas
FireDAC.Comp.DataSet.hpp
FireDAC.Comp.DataSet TFDDataSet


説明

Constraints を使用すると、データセットのレコード レベルの制約を維持管理できます。

レコード レベルの制約では、単一レコード内の少数のフィールドだけを制限することで、ビジネス ルールを強制します。Constraints のチェックは、Post、AppendRecord、InsertRecord のいずれかのメソッドを使ったデータ編集の終わりに行われます。単一フィールドの値を制限する Constraints は、CustomConstraint プロパティまたは ImportedConstraint プロパティを使って指定することができます。

Constraints は、テーブルを開く前に定義されている場合にのみ適用されます。

Constraints のチェックは、ConstraintsEnabled プロパティが True の場合に行われます。アプリケーションでデータセットに対して大量の更新を実行する必要があり、データの整合性をアプリケーション側で保証できる場合は、ConstraintsEnabled プロパティを False に設定します。更新の実行後に元の値に戻すことができます。Constraints は、データ取得時にはチェックされません。

Constraints に含まれている式は述語、つまり論理値として評価されるものでなければなりません。FireDAC でサポートしている式の構文は、以下と互換性があります。

  • クライアント データセット
  • Oracle 8(完全な互換性ではありません)

式の構文の詳細については、「式の作成」を参照してください。

例

with FDQuery1.Constraints.Add do begin
	CustomConstraint:='sal + bonus <= 2000';
	ErrorMessage:='従業員の支払は 2000 USD 以下でなければなりません';
end;
FDQuery1.ConstraintsEnabled:=true;

FDQuery1.Open();
	// 制約が定義された後にクエリを開く
try
  FDQuery1.FieldByName('sal').AsFloat := 1800;
  FDQuery1.FieldByName('bonus').AsFloat := 300;
  FDQuery1.Post;
except
  FDQuery1.Cancel;
  Application.HandleException(Self);
end;

関連項目