« BatchLongTran (CM) » : différence entre les versions

De Wiki1000
(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 versions intermédiaires par le même utilisateur non affiché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]]

Dernière version du 9 avril 2013 à 06: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

version650-32x32.png 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 :

Gestion des transactions (CM)Développement DSM