« AliasOf (exp) » : différence entre les versions

De Wiki1000
(Page créée avec « <source lang='delphi'>function AliasOf(const iClassName,iAttribute:string):string;</source> Cet opérateur retourne la colonne d'un attribut d'une jointure. Il s'utilise... »)
 
Aucun résumé des modifications
 
(Une version intermédiaire par le même utilisateur non affichée)
Ligne 11 : Ligne 11 :
|-
|-
|iClassName
|iClassName
|Classe de l'attribut
|Nom de la contrainte ou nom de la classe de l'attribut
|-
|-
|iAttribute
|iAttribute
Ligne 40 : Ligne 40 :
t0.unCodeA a été récupéré par l'opérateur AliasOf.
t0.unCodeA a été récupéré par l'opérateur AliasOf.


{{tip|Si il existe une ambigüité sur la jointure, par exemple la classe apparait dans plusieurs jointures, l'opérateur retourne la première jointure}}   
{{tip|AliasOf() ne peut être utilisé que sur la partir gauche du terme.}} 
{{tip|Si iClassName est vide, l'opérateur retourne l'attribut de la classe de base du sélecteur.}} 
{{tip|Si il existe une ambigüité sur la jointure, par exemple la classe apparait dans plusieurs jointures, l'opérateur retourne l'attribut de la première jointure.}}   


Voir aussi:
Voir aussi:

Dernière version du 14 novembre 2016 à 08:22

<source lang='delphi'>function AliasOf(const iClassName,iAttribute:string):string;</source>

Cet opérateur retourne la colonne d'un attribut d'une jointure.

Il s'utilise dans le cadre des contraintes de sélecteur.

Paramètre Usage
iClassName Nom de la contrainte ou nom de la classe de l'attribut
iAttribute Nom de l'attribut

Exemple :

<source lang="delphi"> function doSelector(const iCodeA:string; const iCodeB:string):Integer; var selA:TSelector; obj:TObject; begin

 selA := ClassA.CreateSelector('unCodeA=%1','unCodeA',True,[iCodeA]);
 obj  := selA.AddConstraint(nil, 'ClassB','oid','refB','unCodeB=%1',[iCodeB]);
 obj  := selA.AddConstraint(obj, 'ClassA2','refB','oid','AliasOf(ClassA,unCodeA)=unCodeA2',[]);
 Result := selA.Count;

end; </source>

Le code SQL généré est :

select * from CLASSA t0 
join CLASSB t1 on t1.oid=t0.oidrefB and unCodeB='iCodeB'
join CLASSA2 t2 on t2.oidrefB = t1.oid and t0.unCodeA = t2.unCodeA2

t0.unCodeA a été récupéré par l'opérateur AliasOf.

Tip : AliasOf() ne peut être utilisé que sur la partir gauche du terme.
Tip : Si iClassName est vide, l'opérateur retourne l'attribut de la classe de base du sélecteur.
Tip : Si il existe une ambigüité sur la jointure, par exemple la classe apparait dans plusieurs jointures, l'opérateur retourne l'attribut de la première jointure.

Voir aussi:


{{#if:Expressions objets (code)|

{{#if:Expressions objets (code)|— Expressions objets (code) |}} — Développement DSM

|

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

}}