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 : | ||
− | {{ | + | {{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
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 :