AliasOf (exp)

De Wiki1000
function AliasOf(const iClassName,iAttribute:string):string;

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 :

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;

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-20px.png Tip : AliasOf() ne peut être utilisé que sur la partir gauche du terme.
Tip-20px.png Tip : Si iClassName est vide, l'opérateur retourne l'attribut de la classe de base du sélecteur.
Tip-20px.png 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:


Expressions objets (code)Développement DSM

Outils personnels