« AddConstraint (selector) » : différence entre les versions

De Wiki1000
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 3 : Ligne 3 :


Cette méthode définit une contrainte matérialisé par une jointure.
Cette méthode définit une contrainte matérialisé par une jointure.
ATTENTION: Cette méthode ne fonctionne pas actuellement avec les curseurs, il faut impérativement passer par une liste (TSelector.ASList).


{|class="wikitable"
{|class="wikitable"

Version du 3 novembre 2016 à 08:34

{{#images:versionlatest-32x32.png|stock}} <source lang='delphi'>function AddConstaint(iParent:TSelectorConstraint; const iClassName:string; const iRightName:string; const iLeftName:string; const iWhere:string; const iArgs:Array of variant):TSelectorConstraint;</source>

Cette méthode définit une contrainte matérialisé par une jointure. ATTENTION: Cette méthode ne fonctionne pas actuellement avec les curseurs, il faut impérativement passer par une liste (TSelector.ASList).

Paramètre Usage
Result Un objet de type TSelectorConstraint matérialisant la contrainte
iParent Containte parente
iClassName Classe liée
iLeftName Attribut gauche
iRightName Attribut droit
iWhere Clause Where de la jointure
iArgs Paramètres de la clause Where
  • iParent
Une contrainte parente matérialisant la classe de droite
nil pour faire porter la contrainte sur la classe du sélecteur
  • iClassName
Une classe sur laquelle porte la contrainte
  • iLeftName
Un attribut de la classe de la contrainte (iClassName) portant la contrainte
  • iRightName
Un attribut de la classe de droite, du parent ou du sélecteur, portant la contrainte
  • iWhere
Clause where de la contrainte, la clause where est exprimée par rapport à la classe de la contrainte (iClassName)
  • iArgs
Arguments de la contrainte

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]);
 Result := selA.Count;

end; </source>

Cette contrainte va générer le code SQL suivant :

  select * from CLASSA t0 
  join CLASSB t1 on (t1.oid=t0.refB) and (unCodeB='iCodeB')


Voir aussi :

{{#if:Selecteur (tech)|

{{#if:Selecteur (tech)|— Selecteur (tech) |}} — Développement DSM

|

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

}}