BeginUpdate (role)
De Wiki1000
(Différences entre les versions)
(Nouvelle page : <source lang='delphi'>procedure BeginUpdate;</source> Cette procédure indique le début d'un ensemble d'opérations dans le rôle. {|class="wikitable" |- |Pas de paramètre. |} {...) |
|||
Ligne 13 : | Ligne 13 : | ||
Exemple | Exemple | ||
<source lang='delphi'> | <source lang='delphi'> | ||
+ | var inst:WFClasseC; idx:Integer; t1,t2,t3:longint; | ||
begin | begin | ||
− | + | WFClasseCList.BeginUpdate; | |
try | 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 | finally | ||
− | + | WFClasseCList.EndUpdate; | |
end; | end; | ||
end; | end; | ||
</source> | </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 | Voir aussi |
Version actuelle en date du 8 janvier 2010 à 14:42
procedure BeginUpdate;
Cette procédure indique le début d'un ensemble d'opérations dans le rôle.
Pas de paramètre. |
Exemple
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;
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