AddColumn (selector)

De Wiki1000
Révision datée du 12 février 2018 à 08:49 par Syfre (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

{{#images:version800-32x32.png|stock}} <source lang='delphi'>procedure AddColumn(const iSqlColumn,iSqlAlias);</source>

Cette méthode permet d'ajouter une colonne au résultat de la requête qui sera exécutée.

Paramètre Usage
iSqlColumn Le nom de la colonne dans la requête (préfixé de l'alias de table)
iSqlAlias Le nom d'alias SQL de la colonne, sera le nom de colonne dans le résultat.

En général, cette méthode s'utilise avec une contrainte appliquée à une vue.

On peut ainsi recupérer une valeur issue d'une table liée et la manipuler dans la vue.

Pour cela :

  • Prédéfinir la variable dans la vue
  • Faire un sélecteur sur la vue
  • Ajouter une contrainte au sélecteur
  • Ajouter la colonne issue de la contrainte avec comme nom d'alias de colonne le nom de l'attribut de la vue

Exemple :

<source lang="delphi"> Type

 ClassA = class
  codeA: string;
 end;
 ClassB = class
  codeB: string;
  CRef: ClassC; 
 end;
 ClassC = class
  codeC: string;
 end;

procedure foo(); Type

 MyView = viewOf(ClassA)
   unCodeA : string = codeA;
   refC: ClassC; // Reference defined as a variable
 end;

var inst:MyView; sel:TSelector; c1:TSelectorConstraint begin

 sel := MyView.CreateSelector(....);
 c1 := sel.AddConstraint('ClassB','codeB','unCodeA',,[]); // join (table alias t1) ClassA and ClassB on codeA=codeB 
 sel.AddColumn(c1.AliasOf('oidCRef'),'oidRefC'); // Add the column t1.oidCRef in the result set
 ...
 foreach inst in sel.AsList do
  begin
    if Assigned(inst.refC) then
     begin
       // The reference is defined 
       // oidrefC has been set to the value of oidCRef of the join ClassB
       //
     end;
  end;

end; </source>

Voir aussi :

{{#if:Selecteur (tech)|

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

|

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

}}