AddColumn (selector)

De Wiki1000
(Différences entre les versions)
(Page créée avec « {{latest}} <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 ser... »)
 
 
(2 révisions intermédiaires par un utilisateur sont masquées)
Ligne 1 : Ligne 1 :
{{latest}}
+
{{Version800}}
 
<source lang='delphi'>procedure AddColumn(const iSqlColumn,iSqlAlias);</source>
 
<source lang='delphi'>procedure AddColumn(const iSqlColumn,iSqlAlias);</source>
  
Ligne 50 : Ligne 50 :
 
   end;
 
   end;
  
var sel:TSelector; c1:TSelectorConstraint
+
var inst:MyView;  sel:TSelector; c1:TSelectorConstraint
 
begin
 
begin
 
   sel := MyView.CreateSelector(....);
 
   sel := MyView.CreateSelector(....);
Ligne 56 : Ligne 56 :
 
   sel.AddColumn(c1.AliasOf('oidCRef'),'oidRefC'); // Add the column t1.oidCRef in the result set
 
   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;
 
end;
 
</source>
 
</source>

Version actuelle en date du 12 février 2018 à 09:49

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