AliasOf (exp)

De Wiki1000
Révision datée du 5 juillet 2016 à 13:28 par Syfre (discussion | contributions) (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... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

<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 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 : 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

Voir aussi:


{{#if:Expressions objets (code)|

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

|

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

}}