BeginUpdate (role)

De Wiki1000

<source lang='delphi'>procedure BeginUpdate;</source>

Cette procédure indique le début d'un ensemble d'opérations dans le rôle.

Pas de paramètre.
Note : A l'intérieur d'un bloc BeginUpdate / EndUpdate les évènements de notification du rôle sont désactivés et enregistrés, à la fin de l'actualisation un évènement de chaque type enregistré sera émis.


Exemple <source lang='delphi'> var inst:WFClasseC; idx:Integer; t1,t2,t3:longint; begin

 WFClasseCList.BeginUpdate;
 try
   t1 := GetTickCount;
   ClassManager.BeginLongTran(100,'WFClasseC');
   ClassManager.TranAutoBatch := True;
   try
     for idx:=0 to ACount-1 do
      begin
        inst := WFClasseC.Create;
        inst.oidWFClasseARef := OID;
        inst.uneChaine := uneChaine +'-'+ inttostr(idx);
      end;
   t2 := GetTickCount;
   ClassManager.CommitLongTran;
   t3 := GetTickCount;
   ShowMessage(Format('batch:%d loop:%s commit:%s',[
                  ClassManager.TranBatchCount,
                  TickToString(t2-t1),
                  TickTostring(t3-t2)]));
   except
   ClassManager.RollBackLongTran;
   raise;
   end;
 finally
 WFClasseCList.EndUpdate;
 end;

end; </source>

Résultat de l'exécution lorsque le code est appelé d'une interface affichant une grille sur le rôle liste (Création de 110 objets) :

  • Sans BeginUpdate/EndUpdate : 216757 ms
  • Avec BeginUpdate/EndUpdate : 180 ms

Voir aussi

{{#if:Rôles (tech)|

{{#if:Rôles (tech)|— Rôles (tech) |}} — Développement DSM

|

{{#if:|— [[{{{1}}}]] |}} — Développement DSM

}}