« Update (selector) » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| (Une version intermédiaire par le même utilisateur non affichée) | |||
| Ligne 12 : | Ligne 12 : | ||
|- | |- | ||
|iUpdatePropNames | |iUpdatePropNames | ||
|Tableau de | |Tableau de noms d'attribut devant être mis à jour dans la même opération | ||
|- | |- | ||
|iUpdatePropValues | |iUpdatePropValues | ||
|Tableau de | |Tableau de valeurs pour les attributs mis à jour | ||
|} | |} | ||
| Ligne 21 : | Ligne 21 : | ||
*iUpdatePropnames,iUpdatePropValues | *iUpdatePropnames,iUpdatePropValues | ||
: | :Ces 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.}} | {{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.}} | ||
| Ligne 69 : | Ligne 69 : | ||
* [[Renumber (selector)|Renumber]] | * [[Renumber (selector)|Renumber]] | ||
* [[UpdateFrom (selector)|Update en utilisant un sélecteur source]] | |||
{{Footer|Selecteur (tech)}} | {{Footer|Selecteur (tech)}} | ||
[[category:Sélecteur]] | [[category:Sélecteur]] | ||
Dernière version du 23 décembre 2025 à 08:05
function Update(const iUpdatePropNames:Array of string; const iUpdatePropValues:Array of variant):Integer;
Cette méthode met à jour les objets sélectionnés par le sélecteur
| Paramètre | Usage |
|---|---|
| Result | Nombre d'objets affectés par l'opération |
| iUpdatePropNames | Tableau de noms d'attribut devant être mis à jour dans la même opération |
| iUpdatePropValues | Tableau de valeurs pour les attributs mis à jour |
Cette fonction retourne le nombre d'objets affectés par l'opération.
- iUpdatePropnames,iUpdatePropValues
- Ces 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 met à jour les objets de la classe ClassC pour lesquels unBool est faux.
Mise à jour d'attributs avec des constantes
function doUpdate(aDate:Tdatetime):Integer;
var sel:TSelector;
begin
ClassManager.BeginLongTran(10,'ClassC');
try
sel := ClassC.CreateSelector('unBool=%1','unEntierC',True,[False]);
Result := sel.Update(['unBool','uneDate'],[True,aDate]);
ClassManager.CommitLongTran;
except
ClassManager.RollBackLongTran;
raise
end;
end;
Mise à jour d'un attribut d'une classe avec une valeur issue d'une contrainte
Pour mettre à jour un attribut avec une valeur issue d'une colonne utilisez le nom de la colonne préfixé du nom de la table.
function doSelector(const iCodeA:string; const iCodeB:string):Integer;
var selA:TSelector; c1,c2:TSelectorConstraint;
begin
selA := ClassA.CreateSelector('unCodeA=%1','unCodeA',True,[iCodeA]);
c1 := selA.AddConstraint(nil, 'ClassB','oid','refB','unCodeB=%1',[iCodeB]);
c2 := selA.AddConstraint(obj, 'ClassA2','refB','oid','AliasOf(''ClassA'',''unCodeA'')=unCodeA',[]);
withP long transaction do
begin
Result := selA.Update(['unEntierA'],['C2.unEntierA']);
end;
end;
Voir aussi :