FireDAC.Comp.Client.TFDCustomTransaction.Rollback

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

procedure Rollback;

C++

void __fastcall Rollback();

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
procedure
function
public
FireDAC.Comp.Client.pas
FireDAC.Comp.Client.hpp
FireDAC.Comp.Client TFDCustomTransaction

Beschreibung

Annulliert alle Datenänderungen, die in der aktuellen Transaktion vorgenommen wurden, und beendet optional die Transaktion.

Mit Rollback annullieren Sie alle Änderungen, wie INSERT/UPDATE/DELETE-Anweisungen, die in der aktuellen Transaktion an der Datenbank vorgenommen wurden. FireDAC unterstützt verschachtelte Transaktionen, daher handelt es sich bei der aktuellen Transaktion um diejenige, die zuletzt mit einem StartTransaction-Aufruf gestartet wurde. Wenn die Datenbank keine verschachtelten Transaktionen unterstützt, wie die meisten DBMSs, dann emuliert FireDAC verschachtelte Transaktionen anhand von Speicherpunkten.

Vor dem Aufruf von Rollback kann in einer Anwendung der Status der Eigenschaft Active überprüft werden. Wenn in einer Anwendung Rollback aufgerufen wird, obwohl keine aktuelle Transaktion vorhanden ist, wird eine Exception ausgelöst.

Ein Rollback-Aufruf für InterBase/Firebird schließt alle diesem Transaktionsobjekt zugeordneten Datenmengen und Anweisungen und hebt deren Vorbereitung auf. Bei einigen anderen DBMSs macht ein Aufruf alle aktiven Ergebnismengen ungültig (z. B. bei MS SQL Server 2005).

Beispiel

 
 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;

Siehe auch