BatchLongTran (CM)

De Wiki1000
(Différences entre les versions)
m (Remplacement du texte — « {tahoe} » par « {Version650} »)
 
(2 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 :
 
|}
 
|}
  
{{tahoe}} Les remarques suivantes s'appliquent dans un contexte d'exécution parallèle :
+
{{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 ne peut pas être appelé à partir de code parallélisé, l'appel est ignoré.
Ligne 28 : Ligne 28 :
 
     begin
 
     begin
 
       doProcessItem(idx);
 
       doProcessItem(idx);
       if idx mod 100=0 then ClassManager.BatchLongTran;
+
       ClassManager.BatchLongTran;
 +
      // same as :
 +
      // if idx mod 100=0 then ClassManager.BatchLongTran;
 
     end;
 
     end;
 
     ClassManager.CommitLongTran;
 
     ClassManager.CommitLongTran;

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

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

Outils personnels