DeleteObjects (objectlist)
De Wiki1000
Version du 7 novembre 2014 à 09:12 par Syfre (discuter | contributions)
procedure DeleteObjects(iStopOnError:boolean);
Cette procédure supprime les objets de la liste.
iStopOnError | Stoppe si une erreur se produit |
- Si une transaction est ouverte la suppression se fait dans la transaction courante
- Si aucune transaction n'est ouverte une transaction séparée est utilisé
Pseudo code équivalent:
procedure doDeletes(iStopOnError:boolean); var idx:Integer; aRef:TitObject; begin // // Delete all the objects. // for idx:=Count-1 downto 0 do begin aRef := Refs[idx].Instance; if Assigned(aRef) then aRef._AddRef; Delete(idx); try if Assigned(aRef) then begin aRef.Deleted := TRUE; end; except if iStopOnError then begin Insert(idx,aRef); if Assigned(aRef) then aRef._Release; raise; end; end; if Assigned(aRef) then aRef._Garbage; end; end; procedure DeleteObjects(iStopOnError:boolean); begin if ClassManager.TranCount>0 then begin // instances are removed from the list doDeletes(iStopOnError); end else begin old := ClassManager.NewTransContext; try ClassManager.BeginTran; try doDeletes(iStopOnError); ClassManager.Commit([coNoConfirmDialog]); except Classmanager.RollBack; raise ; end; finally ClassManager.ActivateContext(old); end; end; end;
Voir aussi: