Modification des données des ensembles de données (FireDAC)
Remonter à Modification des données (FireDAC)
Sommaire
Les ensembles de données FireDAC, y compris TFDQuery, TFDTable, TFDStoredProc et TFDMemTable, prennent en charge l'insertion, la modification et la suppression des enregistrements, en utilisant les méthodes TDataSet standard. Par défaut, la modification et la validation des mises à jour sont activées pour les ensembles de données FireDAC.
Contrôle de la modification
La modification des ensembles de données est activée lorsque UpdateOptions.ReadOnly est sur False. Les opérations suivantes sont activées :
- L'ajout lorsque UpdateOptions.EnableInsert est sur True :
FDQuery1.Append;
FDQuery1.FieldsByName('id').AsInteger := 100;
FDQuery1.FieldsByName('name').AsString := 'Audi A6';
FDQuery1.Post;
- La modification lorsque UpdateOptions.EnableUpdate est sur True :
FDQuery1.Edit;
FDQuery1.FieldsByName('name').AsString := 'Audi A6 Avant';
FDQuery1.Post;
- La suppression lorsque UpdateOptions.EnableDelete est sur True :
FDQuery1.Delete;
Pour éviter de recevoir le message "Une valeur de champ est requise" lors de l'appel de Post, définissez UpdateOptions.CheckRequired sur False (la valeur par défaut est True).
Validation des mises à jour
Pour valider les mises à jour dans une base de données, FireDAC génère automatiquement des commandes SQL de mise à jour, lorsque la requête SQL d'origine est conforme à ce qui suit :
- La commande doit être une commande SELECT.
- La première table dans la clause FROM doit conserver la clé primaire (PK).
- Les champs PK doivent être dans la liste de la commande SELECT.
- La commande SELECT ne doit pas comporter les phrases DISTINCT, GROUP BY, UNION, etc. Il s'agit d'une règle logique plutôt que d'une obligation.
Par ailleurs, les métadonnées adéquates doivent être fournies, notamment les champs d'identification unique. Le moyen le plus simple d'activer la validation des mises à jour automatiques pour TFDQuery consiste à définir UpdateOptions.RequestLive sur True (la valeur par défaut est True). Il n'existe aucun moyen automatique de contrôler si une requête peut être mise à jour. Le programmeur doit l'évaluer lui-même.
Si la requête n'est pas conforme aux règles ci-dessus ou si la validation doit être redéfinie par l'application, vous pouvez utiliser le composant TFDUpdateSQL ou le gestionnaire d'événement OnUpdateRecord.
Les mises à jour doivent être validées dans une base de données immédiatement avec les appels de méthodes Post ou Delete. Sinon, elles peuvent être mises en cache et validées ultérieurement. La validation des mises à jour différées peut être utilisée avec les connexions hors ligne.
Vidage de l'ensemble de données
Un ensemble de données peut être vidé de manière efficace sans enregistrer de suppression d'enregistrement ni valider la suppression dans une base de données. Le plus souvent, cela est utile pour les ensembles de données en mémoire. Pour vider un ensemble de données, utilisez l'une des méthodes suivantes :
- EmptyDataSet - supprime tous les enregistrements d'un ensemble de données ;
- EmptyView - supprime uniquement les enregistrements accessibles après l'application de filtres, de plages, etc.
Voir aussi
- Champs d'identification unique
- Génération de commandes de mise à jour
- Redéfinition de la validation des mises à jour
Exemples
- Exemple FireDAC TFDQuery OnUpdateRecord