FireDAC.Stan.Option.TFDBottomUpdateOptions.KeyFields
Delphi
property KeyFields: String read FKeyFields write SetKeyFields;
C++
__property System::UnicodeString KeyFields = {read=FKeyFields, write=SetKeyFields};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
property | published | FireDAC.Stan.Option.pas FireDAC.Stan.Option.hpp |
FireDAC.Stan.Option | TFDBottomUpdateOptions |
説明
データセットの主キー フィールドを指定します。
KeyFields を使用すると、データセット レコードの主キーを表すフィールドのセミコロン(';')区切りリストを指定できます。これらのフィールド名は引用符で囲まれず、元の結果セット フィールド名と一致する必要があります。KeyFields は、データセットを準備する前または開く前に指定する必要があります。
以下の場合に FireDAC で主キー フィールドを決定できないときは、KeyFields を指定する必要があります。
- (たとえば、パフォーマンスを上げるために)
fiMeta
が Items に含まれていない場合。 - ビュー、テーブル結合、主キーが定義されていないテーブルのいずれかから得られた結果セットをアプリケーションで編集する必要がある場合。
- ストアド プロシージャやその他の SELECT 文以外の SQL 構文要素から得られた結果セットをアプリケーションで編集する必要がある場合。
KeyFields を設定すると、すべての TField.ProviderFlags フィールドから pfInKey が削除され、指定された ProviderFlags フィールドに pfInKey
が付加されます。あるいは、pfInKey
と TField.ProviderFlags だけをアプリケーションで使用することもできます。ただし、これらのアプローチを両方同時に使用することはできません。
レコード検索条件を作成するには、以下のフィールドを使用します。
- UPDATE ... WHERE <レコード検索条件> を使ってレコード更新をポストするとき(UpdateMode = upWhereKeyOnly または upWhereChanged の場合)
- SELECT ... WHERE <レコード検索条件> を使ってレコードを更新するとき