FireDAC.Comp.DataSet.TFDDataSet.ApplyUpdates
Delphi
function ApplyUpdates(AMaxErrors: Integer = -1): Integer;
C++
int __fastcall ApplyUpdates(int AMaxErrors = 0xffffffff);
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
function | public | FireDAC.Comp.DataSet.pas FireDAC.Comp.DataSet.hpp |
FireDAC.Comp.DataSet | TFDDataSet |
Description
Applique des modifications pour tous les enregistrements dans le journal des modifications centralisé de l'ensemble de données dans la base de données
Utilisez ApplyUpdates pour appliquer des modifications pour tous les enregistrements dans le journal des modifications de l'ensemble de données dans la bases de données. Cette méthode est utile quand CachedUpdates vaut True. L'appel à ApplyUpdates effectue les opérations suivantes :
- Déclenche un événement BeforeApplyUpdates.
- Appelle l'adaptateur de données pour générer / utiliser de commandes SQL de mise à jour pour chaque ligne et publier les modifications dans la base de données.
- Déclenche un événement AfterApplyUpdates.
- Appelle la méthode Reconcile de l'ensemble de données pour réconcilier les enregistrements comportant des erreurs dans la seconde étape.
- S'il n'y avait aucune erreur, elle appelle CommitUpdates pour les descendants de TFDCustomMemTable. Pour les descendants de TFDRdbmsDataSet (TFDQuery, TFDStoredProc, TFDTable et ainsi de suite), l'application doit appeler Reconcile et CommitUpdates explicitement.
AMaxErrors
indique le nombre maximal d'erreurs que FireDAC doit permettre avant d'arrêter prématurément l'opération de mise à jour. Définissez AMaxErrors
sur –1 pour indiquer qu'il n'existe aucune limite au nombre d'erreurs ou sur 0 pour indiquer qu'aucune erreur n'est permise.
ApplyUpdates renvoie le nombre d'erreurs rencontrées. En fonction de cette valeur de retour et de la définition réussie de AMaxErrors
, les enregistrements appliqués sont retirés du journal des modifications de l'ensemble de données. Si le processus de mise à jour est abandonné avant que toutes les mises à jour aient été appliquées, toutes les mises à jour non appliquées restent dans le journal des modifications.
ApplyUpdates ne déclenche pas des exceptions. A la place, l'application doit vérifier les enregistrements erronés en utilisant Reconcile et le gestionnaire d’événement OnReconcileError ou les propriétés FilterChanges et RowError. Pour plus de détails, lisez "Examen des erreurs" dans Mises à jour en cache.
Toutes les modifications sont appliquées dans l'ordre des modifications de l'ensemble de données. La première modification (insertion / mise à jour / suppression) est appliquée premièrement, la dernière modification est appliquée dernièrement.
Exemple
procedure TForm1.btnApplyClick(ASender: TObject);
begin
if FDStoredProc1.UpdatesPending then
FDStoredProc1.ApplyUpdates;
end;
Voir aussi
- Mises à jour en cache
- FireDAC.Comp.DataSet.TFDDataSet.CachedUpdates
- FireDAC.Comp.DataSet.TFDDataSet.CancelUpdates
- FireDAC.Comp.DataSet.TFDDataSet.CommitUpdates
- FireDAC.Comp.DataSet.TFDDataSet.RowError
- FireDAC.Comp.DataSet.TFDDataSet.FilterChanges
Exemples
- Exemple FireDAC TFDQuery OnUpdateRecord