AliasOf (exp)

De Wiki1000
(Différences entre les versions)
(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... »)
 
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:

Version du 19 septembre 2016 à 13:43

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