RenumberAndSeal (TSealOpeLogRegClass)

De Wiki1000
(Différences entre les versions)
 
(2 révisions intermédiaires par un utilisateur sont masquées)
Ligne 1 : Ligne 1 :
 
<source lang='delphi'>class function RenumberAndSeal(sel:TSelector; const iUpdateProperties:Array of variant; iUpdateValues:Array of variant; var aReason:string):Integer;</source>
 
<source lang='delphi'>class function RenumberAndSeal(sel:TSelector; const iUpdateProperties:Array of variant; iUpdateValues:Array of variant; var aReason:string):Integer;</source>
 
Cette méthode [[Renumber_(selector)|renumérote]] et scelle les objets référencés par le sélecteur et crée un enregistrement de journal.
 
 
La méthode :
 
 
* Utilise le prochain numéro de séquence issu du dernier enregistrement de journal.
 
* Gère une transaction longue si aucune transaction longue n'est ouverte.
 
  
 
{|class="wikitable"
 
{|class="wikitable"
Ligne 20 : Ligne 13 :
 
|-
 
|-
 
|iUpdateProperties
 
|iUpdateProperties
|Liste d'attribut à mettre à jour
+
|Liste d'attributs à mettre à jour
 
|-
 
|-
 
|iLastSequenceNumber
 
|iLastSequenceNumber
Ligne 28 : Ligne 21 :
 
|Information sur l'erreur
 
|Information sur l'erreur
 
|}
 
|}
 +
 +
Cette méthode [[Renumber_(selector)|renumérote]] et scelle les objets référencés par le sélecteur et crée un enregistrement de journal.
 +
 +
La méthode :
 +
 +
* Utilise le prochain numéro de séquence issu du dernier enregistrement de journal.
 +
* Crée un enregistrement de journal
 +
* Gère une transaction longue si aucune transaction longue n'est ouverte.
 +
 +
{{tip|Du fait que Renumber met à jour les objets par SQL, les attributs mis à jour (iUpdateProperties) ne doivent pas être protégés.}}
 +
{{Tip|Cette méthode est une opération exclusive, la classe journal est vérrouillée durant l'opération}}
  
 
Exemple :
 
Exemple :

Version actuelle en date du 13 avril 2017 à 08:48

class function RenumberAndSeal(sel:TSelector; const iUpdateProperties:Array of variant; iUpdateValues:Array of variant; var aReason:string):Integer;
Paramètre Usage
Result Nombre d'objet scellé, 0 indique une erreur
sel Sélecteur de la classe scellée
iUpdateProperties Liste d'attributs à mettre à jour
iLastSequenceNumber Liste des valeurs des attributs à mettre à jour
aReason Information sur l'erreur

Cette méthode renumérote et scelle les objets référencés par le sélecteur et crée un enregistrement de journal.

La méthode :

  • Utilise le prochain numéro de séquence issu du dernier enregistrement de journal.
  • Crée un enregistrement de journal
  • Gère une transaction longue si aucune transaction longue n'est ouverte.
Tip-20px.png Tip : Du fait que Renumber met à jour les objets par SQL, les attributs mis à jour (iUpdateProperties) ne doivent pas être protégés.
Tip-20px.png Tip : Cette méthode est une opération exclusive, la classe journal est vérrouillée durant l'opération

Exemple :

Utilisation à l'intérieur d'une transaction longue :

function RenumberAndSealInsideLT(var aReason:string):Intege;
var AStr:string; sel:TSelector;
begin
   sel := ClassSealed.CreateSelector('(SequenceNumber=%1)','',True,[0]);
   Result := sel.Count;
   if Result=0 then
    begin
      aReason := 'Nothing to seal';
      Exit;
    end;
 
  ClassManager.BeginLongTran(0,'ClassSealed');
  try
    Result := ClassSealOpeLog.RenumberAndSeal(sel,['isSealed'],[True],aStr);
    if Result=0 then
     begin
       aReason := aStr;
       ClassManager.RollBackLongTran;
       Exit;
     end;
   ClassManager.CommitLongTran;
  except
  Result := 0;
  ClassManager.RollBackLongTran;
  end;
end;


Utilisation avec transaction gérée par la méthode :

function RenumberAndSealManageLT(var aReason:string):Intege;
ar AStr:string; sel:TSelector;
begin
   sel := ClassSealed.CreateSelector('(SequenceNumber=%1)','',True,[0]);
   Result := sel.Count;
   if Result=0 then
    begin
      aReason := 'Nothing to seal';
      Exit;
    end;
 
    Result := ClassSealOpeLog.RenumberAndSeal(sel,['isSealed'],[True],aStr);
    if Result=0 then
     begin
       aReason := aStr;
       Exit;
     end;
end;

Voir aussi

Classe_journal de scellement_(stereotype)Développement DSM

Outils personnels