Problèmes avec query et paramètres de type collection

Bonjour à tous,

Testant la notation objet sur 4D V17.0 Windows afin d’optimiser mes recherches en fonction des variables saisies par l’utilisateur, je bute sur un problème que je n’ai pas put résoudre.
Aurais-je mal lu la doc ?

<code 4D>
// Si j’écrit :
$chainerech:=“NomCli = :1 & Service = :2”
$params:=Créer collection(“Boiron@”;“SAV”)
$selection:=ds.Devis.query($chainerech;$params) // Erreur -1

	  // Si j'écrit :
	$params:=Créer collection("Boiron@";"SAV")
	$selection:=ds.Devis.query("NomCli = :1  &  Service = :2";$params)  // Erreur -1
	
	  // Si j'écrit :
	$selection:=ds.Devis.query("NomCli = :1  &  Service = :2";"Boiron@";"SAV")  // 9 entités dans $selection

</code 4D>

Merci de votre aide.

Bonne soirée

normally, the collection type parameter should be used with the “IN” operator.

Hello
Thanks you very much.
In fact I write like this :

<code 4D>
$chainerech:=“NomCli = :1 and Service = :2”
$params:=Créer objet
$params.parameters:=Créer collection(“Boiron@”;“SAV”)
$selection:=ds.Devis.query($chainerech;$params) // OK 9 entités dans $selection

</code 4D>

Have a good day

Bonjour,

C’est assez normal car l’attribut parameters n’est pas passé à $param qui doit être un objet et non une collection. C’est l’attribut parameters qui est une collection
En regardant bien la doc, vous trouverez l’exemple pour coder correctement :

<code 4D>
$params:=New object
$params.parameters:=New collection(“D@”;“R@”;“S@”;“K@”)
$entitySelection:=dataClass.query("(firstName = :1 or firstName = :2) and (lastName = :3 or lastName = :4)";$params)
</code 4D>

Cordialement,

Merci,
J’ai bien compris. Je vais pouvoir automatiser mes recherches avec beaucoup moins de code.
Cordialement