FireDAC.Comp.Client.TFDCustomConnection.Commit
Delphi
procedure Commit;
C++
void __fastcall Commit();
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
procedure function |
public | FireDAC.Comp.Client.pas FireDAC.Comp.Client.hpp |
FireDAC.Comp.Client | TFDCustomConnection |
Description
Stocke de façon permanente les modifications apportées aux données dans la transaction en cours, et met facultativement fin aux transactions en cours.
Appelez Commit pour stocker de façon permanente les modifications, telles que celles causées par la commande INSERT, UPDATE ou DELETE, effectuées dans la transaction en cours dans la base de données.
Comme FireDAC supporte les transactions imbriquées, la transaction en cours est celle qui a été démarrée par l'appel de 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 alors des transactions imbriquées à l'aide de points de sauvegarde.
Avant d'appeler Commit, une application peut vérifier le statut de la propriété InTransaction. Si une application appelle Commit alors qu'aucune transaction n'est en cours, une exception est déclenchée.
Un appel de Commit sur InterBase ou Firebird ferme et annule la préparation de tous les ensembles de données et commandes, associés à cet objet transaction. Sur certains autres SGBD (par exemple, MS SQL Server 2005), un appel invalide tous les ensembles de résultats actifs. Pour imposer FetchAll aux ensembles de données actifs, utilisez la méthode ReleaseClients.
L'appel de Commit est le raccourci de Transaction.Commit, si la propriété Transaction est assignée. Sinon, Commit opèrera sur la transaction de connexion par défaut.
Exemple
procedure TForm1.DoThatButtonClick(Sender: TObject);
begin
FDConnection1.StartTransaction;
try
if CustomerQuery.Locate('ID', [100]) then begin
CustomerQuery.Edit;
CustomerQuery.FieldByName('status').AsString := 'top';
CustomerQuery.Post;
FDConnection1.ExecSQL('delete from debt where CustID = 100');
FDConnection1.Commit;
end;
except
FDConnection1.Rollback;
raise;
end;
end;