Renumber (selector)

De Wiki1000
(Différences entre les versions)
 
(Une révision intermédiaire par un utilisateur est masquée)
Ligne 48 : Ligne 48 :
 
var sel:TSelector;
 
var sel:TSelector;
 
begin
 
begin
 +
  // Use AutoCommit
 
   sel := ClassC.CreateSelector('unBool=%1','unEntierC',True,[False]);
 
   sel := ClassC.CreateSelector('unBool=%1','unEntierC',True,[False]);
 
   Result := sel.Renumber('unEntierN',0,['unBool'],[True]);
 
   Result := sel.Renumber('unEntierN',0,['unBool'],[True]);
 +
end;
 +
 +
function doRenumber():Integer;
 +
var sel:TSelector;
 +
begin
 +
  // Use a transaction
 +
  ClassManager.BeginLongTran;
 +
  try
 +
    sel := ClassC.CreateSelector('unBool=%1','unEntierC',True,[False]);
 +
    Result := sel.Renumber('unEntierN',0,['unBool'],[True]);
 +
    ClassManager.CommitLongTran;
 +
  except
 +
  ClassManager.RollbackLongTran;
 +
  raise;
 +
  end;
 
end;
 
end;
 
</source>
 
</source>
  
 
Voir aussi :
 
Voir aussi :
 +
 +
* [[Update (selector)|Update]]
  
 
{{Footer|Selecteur (tech)}}
 
{{Footer|Selecteur (tech)}}
 
[[category:Sélecteur]]
 
[[category:Sélecteur]]

Version actuelle en date du 16 mars 2016 à 09:35

function Renumber(const iIntegerPropName:string; iStartalue:Integer; const iUpdatePropNames:Array of string; const iUpdatePropValues:Array of variant):Integer;

Cette méthode renumérote les objets sélectionnés par le sélecteur

Paramètre Usage
Result Nombre d'objets affectés par l'opération
iIntegerPropName Nom de l'attribut qui doit être mis à jour
iStartValue Valeur de début de la numérotation
iUpdatePropNames Tableau de nom d'attribut devant être mis à jour dans la même opération
iUpdatePropValues Tableau de valeur pour les attributs mis à jour

La numérotation est effectuée suivant l'ordre de tri du sélecteur.

Cette fonction retourne le nombre d'objets affectés par l'opération.

  • iIntergerPropname
Cet attribut doit être de type entier
  • iStartValue
0 : La numérotation commence à 1
N : La numérotation commence à N+1
  • iUpdatePropnames,iUpdatePropValues
C'est deux tableaux doivent avoir le même nombre d'élément et doivent référencer des attributs de la classe du sélecteur
Tip-20px.png Tip : L'opération est effectué par un ordre SQL en mode auto commit, si une transaction longue est ouverte la session de la transaction longue est utilisée.

Exemple :

L'exemple suivant renumérote l'attribut unEntierN des objets de la classe ClassC pour lesquels unBool est faux et met à jour unBool à vrai. La numérotation est réalisée suivant l'ordre de l'attribut unEntierC.

function doRenumber():Integer;
var sel:TSelector;
begin
  // Use AutoCommit
  sel := ClassC.CreateSelector('unBool=%1','unEntierC',True,[False]);
  Result := sel.Renumber('unEntierN',0,['unBool'],[True]);
end;
 
function doRenumber():Integer;
var sel:TSelector;
begin
  // Use a transaction
  ClassManager.BeginLongTran;
  try
    sel := ClassC.CreateSelector('unBool=%1','unEntierC',True,[False]);
    Result := sel.Renumber('unEntierN',0,['unBool'],[True]);
    ClassManager.CommitLongTran;
  except
  ClassManager.RollbackLongTran;
  raise; 
  end; 
end;

Voir aussi :

Selecteur (tech)Développement DSM

Outils personnels