FireDAC.Comp.Client.TFDCustomTransaction.Rollback

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

procedure Rollback;

C++

void __fastcall Rollback(void);

Propriétés

Type Visibilité  Source Unité  Parent
procedure
function
public
FireDAC.Comp.Client.pas
FireDAC.Comp.Client.hpp
FireDAC.Comp.Client TFDCustomTransaction

Description

Annule toutes les modifications apportées aux données dans la transaction en cours, et met facultativement fin à celle-ci.

Appelez Rollback pour annuler toutes les modifications, comme les commandes INSERT / UPDATE / DELETE, apportées à la base de données lors de la transaction en cours.  Comme FireDAC supporte les transactions imbriquées, la transaction en cours est celle qui a été démarrée par l'appel StartTransaction le plus récent. Si la base de données ne supporte pas les transactions imbriquées, comme la plupart des SGBD, FireDAC émule des transactions imbriquées à l'aide de points de sauvegarde.

Avant d'appeler Rollback, une application peut vérifier l'état de la propriété Active. Si une application appelle Rollback alors qu'il n'existe pas de transaction en cours, une exception est déclenchée.

Un appel Rollback à InterBase / Firebird va fermer et annuler la préparation de tous les ensembles de données et commandes, associés à cet objet de transaction. Dans d'autres SGBD, un appel invalidera tous les ensembles de résultats actifs (c'est le cas, par exemple, dans MS SQL Server 2005).

Exemple

 
 procedure TForm1.ChangeButtonClick(Sender: TObject);
 begin
   FDQuery1.Transaction := ADTransaction1;
   FDQuery1.SQL.Text := 'update employees set salary = salary * :k where id = :id';
   FDTransaction1.StartTransaction;
   try
     FDQuery1.ExecSQL('', [1.2, 100]);
     FDQuery1.ExecSQL('', [1.3, 200]);
     FDTransaction1.Commit;
   except
     FDTransaction1.Rollback;
     raise;
   end;
 end;

Voir aussi