AddColumn (selector)
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 :