« BeginUpdate (role) » : différence 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. |} {...) |
Aucun résumé des modifications |
||
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 |
Dernière version du 8 janvier 2010 à 13:42
<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. |
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 —
}}