« 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 —
}}