PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Impossible d'ignorer paramètre dans une requête
Impossible d'ignorer paramètre dans une requête
Iniciado por cecile.aliaga, 07,ago. 2020 12:25 - 3 respuestas
Publicado el 07,agosto 2020 - 12:25
Bonjour,
J'ai requête paramétrée qui fonctionne parfaitement tant que je lui donne l'intégralité des paramètres. Seulement, je souhaite que les 2 paramètres IDCuve est IDProduit soit parfois ignoré pour récupérer l'intégralité des cuves ou des produits.
Ceci ne fonctionne pas en passant les paramètres à Null ou à vide.
J'obtiens l'erreur : Erreur d'initialisation de la requête. Mot ) inattendu. Erreur détectée ligne 31 : "AND Cuve.IDCuve IN (>>>>)<<<<"


SELECT
Stock.IDStock AS IDStock,
CONCAT(Cuve.CodeCuve , ' ',Produit.Libelle , ' ',Automate.Nom ) AS Cuve,
Stock.Date AS DATE,
Stock.Heure AS Heure,
Produit.Libelle AS Produit,
Stock.TypeMouvement AS TypeMouvement,
Sum(CASE WHEN ( Stock.TypeMouvement = 1) THEN Stock.Quantite ELSE 0 END ) AS QuantiteEntree,
Sum(CASE WHEN ( Stock.TypeMouvement = 2) THEN Stock.Quantite ELSE 0 END ) AS Quantitesortie,
Stock.Prix AS Prix,
Sum(CASE WHEN ( Stock.TypeMouvement = 1) THEN ( Stock.Quantite * Stock.Prix ) ELSE 0 END ) AS Montant,
Stock.Observations AS Observations
FROM
(
(
Stock
Left OUTER JOIN
Cuve
ON Stock.IDCuve = Cuve.IDCuve
)
Left OUTER JOIN
Produit
ON Cuve.IDProduit = Produit.IDProduit
)
Left OUTER JOIN
Automate
ON Cuve.IDAutomate = Automate.IDAutomate
WHERE
(
CONCAT(Stock.Date ,Stock.Heure ) BETWEEN {pdhDebut} AND {pdhFin}
AND Cuve.IDCuve IN ({pIDCuve})
AND Produit.IDProduit = {pIDProduit}
)
GROUP by
Stock.IDStock,
CONCAT(Cuve.CodeCuve , ' ',Produit.Libelle , ' ',Automate.Nom ) ,
Stock.Date,
Stock.Heure,
Produit.Libelle,
Stock.TypeMouvement,
Stock.Prix,
Stock.Observations
ORDER by
Cuve Asc,
DATE Asc,
Heure Asc
Miembro registrado
7 mensajes
Publicado el 07,agosto 2020 - 16:32
Il est possible de passer une valeur non utilisée par défaut pour tout prendre (par exemple -1) et faire

AND (Cuve.IDCuve IN ({pIDCuve}) OR {pIDCuve}=-1))
Miembro registrado
1.640 mensajes
Publicado el 07,agosto 2020 - 17:10
Hello,

Normalement, il suffit de ne pas initialiser du tout le paramètre pour qu'il soit omis.
Miembro registrado
2.682 mensajes
Publicado el 07,agosto 2020 - 17:48
Si tu exécutes ta requête par HExecuteRequete il suffit de passer null omettre pour le paramètre.

Si tu exécutes ta requête par HExecuteRequeteSQL tu ne peux pas omettre le paramètre.

--
Cordialement,

Philippe SAINT-BERTIN