« Update (selector) » : différence entre les versions

De Wiki1000
(Page créée avec « <source lang='delphi'>function Update(const iUpdatePropNames:Array of string; const iUpdatePropValues:Array of variant):Integer;</source> Cette méthode met à jour les o... »)
 
Aucun résumé des modifications
 
(2 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 28 : Ligne 28 :


L'exemple suivant met à jour les objets de la classe ClassC pour lesquels unBool est faux.
L'exemple suivant met à jour les objets de la classe ClassC pour lesquels unBool est faux.
'''Mise à jour d'attributs avec des constantes'''


<source lang='delphi'>
<source lang='delphi'>
Ligne 37 : Ligne 39 :
     sel := ClassC.CreateSelector('unBool=%1','unEntierC',True,[False]);
     sel := ClassC.CreateSelector('unBool=%1','unEntierC',True,[False]);
     Result := sel.Update(['unBool','uneDate'],[True,aDate]);
     Result := sel.Update(['unBool','uneDate'],[True,aDate]);
     ClassManager.RollBackLongTran;
     ClassManager.CommitLongTran;
   except
   except
   ClassManager.RollBackLongTran;
   ClassManager.RollBackLongTran;
  raise
   end;
   end;
end;
end;
</source>
</source>
'''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.
<source lang='delphi'>
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;
</source>


Voir aussi :
Voir aussi :

Dernière version du 17 novembre 2016 à 15:00

<source lang='delphi'>function Update(const iUpdatePropNames:Array of string; const iUpdatePropValues:Array of variant):Integer;</source>

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 nom d'attribut devant être mis à jour dans la même opération
iUpdatePropValues Tableau de valeur pour les attributs mis à jour

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

  • 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 met à jour les objets de la classe ClassC pour lesquels unBool est faux.

Mise à jour d'attributs avec des constantes

<source lang='delphi'> 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; </source>

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.

<source lang='delphi'> 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; </source>


Voir aussi :

{{#if:Selecteur (tech)|

{{#if:Selecteur (tech)|— Selecteur (tech) |}} — Développement DSM

|

{{#if:|— [[{{{1}}}]] |}} — Développement DSM

}}