AddColumn (selector)

De Wiki1000

version800-32x32.png

procedure AddColumn(const iSqlColumn,iSqlAlias);

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 :

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;

Voir aussi :

Selecteur (tech)Développement DSM

Outils personnels