FireDAC.Stan.Option.TFDBottomUpdateOptions.KeyFields
Delphi
property KeyFields: String read FKeyFields write SetKeyFields;
C++
__property System::UnicodeString KeyFields = {read=FKeyFields, write=SetKeyFields};
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
property | published | FireDAC.Stan.Option.pas FireDAC.Stan.Option.hpp |
FireDAC.Stan.Option | TFDBottomUpdateOptions |
Description
Spécifie les champs de clé primaire d'un ensemble de données.
Utilisez KeyFields pour spécifier une liste de champs séparés par un point-virgule (';'), qui représentent les clés primaires d'enregistrements d'un ensemble de données. Les noms ne doivent pas comporter d'apostrophes et doivent correspondre aux noms de champs de l'ensemble de résultats. KeyFields doit être spécifié avant la préparation/l'ouverture d'un ensemble de données.
Il est nécessaire de spécifier KeyFields lorsque FireDAC ne peut pas déterminer les champs de clé primaire, dans les cas suivants :
fiMeta
n'est pas inclus dans Items, par exemple dans un souci d'amélioration des performances.- L'application doit modifier un ensemble de résultats obtenu à partir d'une jointure de tables ou d'une table sans clé primaire définie.
- L'application doit modifier un ensemble de résultats obtenu à partir d'une procédure stockée ou d'une autre construction SQL non SELECT.
La définition de KeyFields retire pfInKey de tous les champs TField.ProviderFlags et inclut pfInKey
pour les champs ProviderFlags spécifiés. Sinon, l'application peut utiliser uniquement pfInKey
ou TField.ProviderFlags, mais pas les deux simultanément.
Pour créer une condition de recherche d'enregistrement, utilisez les champs suivants :
- Pour valider une mise à jour d'enregistrement avec UPDATE ... WHERE <condition de recherche d'enregistrement>, si UpdateMode = upWhereKeyOnly ou upWhereChanged.
- Pour actualiser un enregistrement avec SELECT ... WHERE <condition de recherche d'enregistrement>.