« AddConstraint (selector) » : différence entre les versions
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 | |||
ATTENTION: Cette méthode ne fonctionnant pas actuellement avec les curseurs, il faut impérativement passer par une liste TSelector.ASList. | |||
{|class="wikitable" | {|class="wikitable" | ||
Ligne 46 : | Ligne 47 : | ||
*iWhere | *iWhere | ||
:Clause where de la contrainte, la clause where est exprimée par rapport à la classe de la contrainte (iClassName) | :Clause where de la contrainte, la clause where est exprimée par rapport à la classe de la contrainte (iClassName). Les rôles NE sont pas évalués, il faut passer impérativement par AliasOf au besoin. | ||
*iArgs | *iArgs |
Version du 3 novembre 2016 à 08:37
{{#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 fonctionnant 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). Les rôles NE sont pas évalués, il faut passer impérativement par AliasOf au besoin.
- 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 —
}}