FireDAC.Comp.DataSet.TFDDataSet.CachedUpdates
Delphi
property CachedUpdates: Boolean read GetCachedUpdates write SetCachedUpdates default False;
C++
__property bool CachedUpdates = {read=GetCachedUpdates, write=SetCachedUpdates, default=0};
Propriétés
| Type | Visibilité | Source | Unité | Parent | 
|---|---|---|---|---|
| property | public | FireDAC.Comp.DataSet.pas FireDAC.Comp.DataSet.hpp | FireDAC.Comp.DataSet | TFDDataSet | 
Description
Spécifie si l'ensemble de données consignera les modifications apportées aux données sans les appliquer immédiatement à la base de données.
CachedUpdates active (True) ou désactive (False) la consignation des modifications des données (Insert/Post, Edit/Post, Delete) sans les appliquer immédiatement à la base de données. Une application doit appliquer explicitement les modifications consignées dans le journal des modifications à la base de données, en utilisant la méthode ApplyUpdates. Toutes les modifications sont écrites en un petit laps de temps par une transaction unique. Les principaux avantages de l'activation des mises à jour en cache sont les suivants :
- Des transactions moins nombreuses et qui prennent moins de temps.
- Un trafic réseau minimal.
- L'implémentation simplifiée de la fonctionnalité annuler / rétablir pour l'ensemble de données.
- La capacité à implémenter les applications en mode hors connexion ou avec le modèle briefcase.
Les inconvénients potentiels de l'activation des mises à jour en cache sont les suivants :
- D'autres applications peuvent lire et modifier les données réelles sur le serveur pendant que les utilisateurs sont en train de modifier des copies locales des données, ce qui aboutit à un conflit de mise à jour quand les mises à jour en cache sont appliquées à la base de données.
- D'autres applications ne peuvent pas accéder aux modifications des données effectuées par une application jusqu'à ce que ses mises à jour en cache soient appliquées à la base de données.
Remarque : Pour modifier la valeur de la propriété CachedUpdate pour TFDTable, la table doit être inactive.
Exemple
 
 FDQuery1.CachedUpdates := True;
 ...
 FDQuery1.Edit;
 ...
 FDQuery1.Post;
 ...
 FDQuery1.Append;
 ...
 FDQuery1.Post;
 ...
 FDQuery1.ApplyUpdates;
 FDQuery1.CommitUpdates;
 FDQuery1.CachedUpdates := False;