BatchLongTran (CM)
De Wiki1000
(Différences entre les versions)
(Nouvelle page : <source lang='delphi'>procedure BatchLongTran;</source> Cette procédure valide et transmet les objets en transaction au serveur SQL si le nombre d'objet est supérieur ou égale à...) |
m (Remplacement du texte — « {tahoe} » par « {Version650} ») |
||
(4 révisions intermédiaires par un utilisateur sont masquées) | |||
Ligne 1 : | Ligne 1 : | ||
<source lang='delphi'>procedure BatchLongTran;</source> | <source lang='delphi'>procedure BatchLongTran;</source> | ||
− | Cette procédure valide et transmet les objets en transaction au serveur SQL si le nombre d'objet est supérieur ou égale à BatchSize de la transaction. | + | Cette procédure valide et transmet les objets en transaction au serveur SQL <u>si le nombre d'objet est supérieur ou égale à BatchSize</u> de la transaction. |
{|class="wikitable" | {|class="wikitable" | ||
Ligne 8 : | Ligne 8 : | ||
|} | |} | ||
− | Exemple | + | {{Version650}} Les remarques suivantes s'appliquent dans un contexte d'exécution parallèle : |
+ | |||
+ | * BatchLongTran ne peut pas être appelé à partir de code parallélisé, l'appel est ignoré. | ||
+ | * BatchLongTran est un point de synchronisation pour le code parallélisé, l'appel de BatchLongTran : | ||
+ | :* Stop le démarrage de nouvelle exécution parallèle | ||
+ | :* Attend que toutes les exécutions parallèles en cours soient terminées | ||
+ | :* Exécute le batch | ||
+ | :* Redémarre l'exécution du code parallélisé. | ||
+ | |||
+ | |||
+ | Exemple : | ||
+ | |||
<source lang='delphi'> | <source lang='delphi'> | ||
var idx:Integer; | var idx:Integer; | ||
Ligne 18 : | Ligne 29 : | ||
doProcessItem(idx); | doProcessItem(idx); | ||
ClassManager.BatchLongTran; | ClassManager.BatchLongTran; | ||
+ | // same as : | ||
+ | // if idx mod 100=0 then ClassManager.BatchLongTran; | ||
end; | end; | ||
ClassManager.CommitLongTran; | ClassManager.CommitLongTran; | ||
Ligne 27 : | Ligne 40 : | ||
</source> | </source> | ||
− | Voir aussi | + | Voir aussi : |
+ | * [[BeginLongTran (CM)|BeginLongTran]] | ||
{{Footer|Gestion des transactions (CM)}} | {{Footer|Gestion des transactions (CM)}} | ||
[[category:ClassManager]] | [[category:ClassManager]] | ||
[[category:CMT]] | [[category:CMT]] |
Version actuelle en date du 9 avril 2013 à 07:38
procedure BatchLongTran;
Cette procédure valide et transmet les objets en transaction au serveur SQL si le nombre d'objet est supérieur ou égale à BatchSize de la transaction.
Pas de paramètre |
Les remarques suivantes s'appliquent dans un contexte d'exécution parallèle :
- BatchLongTran ne peut pas être appelé à partir de code parallélisé, l'appel est ignoré.
- BatchLongTran est un point de synchronisation pour le code parallélisé, l'appel de BatchLongTran :
- Stop le démarrage de nouvelle exécution parallèle
- Attend que toutes les exécutions parallèles en cours soient terminées
- Exécute le batch
- Redémarre l'exécution du code parallélisé.
Exemple :
var idx:Integer; begin ClassManager.BeginLonTran(100,'MaClass'); try for idx:=0 to VeryBigInt do begin doProcessItem(idx); ClassManager.BatchLongTran; // same as : // if idx mod 100=0 then ClassManager.BatchLongTran; end; ClassManager.CommitLongTran; except ClassManager.RollBackLongTran; raise; end; end;
Voir aussi :