« Renumber (selector) » : différence entre les versions
(Page créée avec « <source lang='delphi'>function Renumber(const iIntegerPropName:string; iStartalue:Integer; const iUpdatePropNames:Array of string; const iUpdatePropValues:Array of variant... ») |
Aucun résumé des modifications |
||
(3 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 38 : | Ligne 38 : | ||
: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 | :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|L'opération est effectué par un ordre SQL en mode auto commit}} | {{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 : | 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. | |||
<source lang='delphi'> | <source lang='delphi'> | ||
Ligne 46 : | 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]] |
Dernière version du 16 mars 2016 à 08:35
<source lang='delphi'>function Renumber(const iIntegerPropName:string; iStartalue:Integer; const iUpdatePropNames:Array of string; const iUpdatePropValues:Array of variant):Integer;</source>
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 : 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.
<source lang='delphi'> 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; </source>
Voir aussi :
{{#if:Selecteur (tech)|
{{#if:Selecteur (tech)|— Selecteur (tech) |}} — Développement DSM —
|
{{#if:|— [[{{{1}}}]] |}} — Développement DSM —
}}