FireDAC.Phys.MongoDBDataSet.TFDMongoQuery.Constraints
Delphi
property Constraints: TCheckConstraints read FConstraints write SetConstraints stored IsCS;
C++
__property Constraints;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
property | published | FireDAC.Phys.MongoDBDataSet.pas FireDAC.Phys.MongoDBDataSet.hpp |
FireDAC.Phys.MongoDBDataSet | TFDMongoQuery |
説明
Constraints を使用すると、データセットのレコード レベルの制約を維持管理できます。
FireDAC.Phys.MongoDBDataSet.TFDMongoQuery.Constraints は FireDAC.Comp.DataSet.TFDDataSet.Constraints を継承しています。以下の内容はすべて FireDAC.Comp.DataSet.TFDDataSet.Constraints を参照しています。
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;