WD12 -34d - Etat et requete parametree avec clause IN

Le
I.G.LOG
Bonjour,

Je dois éditer un état des stocks de un ou plusieurs magasins.
Pour ceci j'utilise un état basé sur la requete suivante:

select
DOCUMLG.IDDOCUM,DOCUMLG.IDARTICLE,DOCUMLG.ETAT,DOCUMLG.QTEREST,DOCUMLG.PRIX,
DOCUMLG.DESIGNATION,DOCUMLG.REFCONST,
TIERS.RAISON,TIERS.ABREV
from
DOCUMLG inner join TIERS on TIERS.IDTIERS = DOCUMLG.IDTIERS
WHERE
DOCUMLG.IDDOCUM in ({pNumMag})
AND DOCUMLG.IDTIERS = {pIdTiers}
AND DOCUMLG.REFCONST between {pDe} and {pA}
AND DOCUMLG.ETAT = {pEtat}
AND DOCUMLG.QTEREST <> 0
order by ABREV,REFCONST,ETAT

Le champ IDDOCUM correspond au magasin.
Je passe donc dans le paramètre {pNumMag} une chaine de caractère comme
"3,6,9" par exemple (pour lister les articles appartenants aux trois
magasins identifiés 3,6 et 9)
D'après mes essais, la requète ne prend en compte que le 1er magasin - dans
l'exemple le magasin n° 3 - au lieu de des 3 magasins (pour confirmer ce
défaut j'ai passé la chaine "6,3,9" et j'obtient les stocks du seul magasin
n° 6) !!!
J'ai exécuté la requète manuellement (avec SQLExec) et là les résultats sont
corrects. Le problème vient donc sur le IN dans le cas d'utilisation avec
iInitRequeteEtat()
Avez vous rencontré ce problème et connaissez vous une solution ?
Merci à tous
Phil
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JeAn-PhI
Le #14550801
I.G.LOG a exprimé avec précision :
Bonjour,

Je dois éditer un état des stocks de un ou plusieurs magasins.
Pour ceci j'utilise un état basé sur la requete suivante:

select
DOCUMLG.IDDOCUM,DOCUMLG.IDARTICLE,DOCUMLG.ETAT,DOCUMLG.QTEREST,DOCUMLG.PRIX,
DOCUMLG.DESIGNATION,DOCUMLG.REFCONST,
TIERS.RAISON,TIERS.ABREV
from
DOCUMLG inner join TIERS on TIERS.IDTIERS = DOCUMLG.IDTIERS
WHERE
DOCUMLG.IDDOCUM in ({pNumMag})
AND DOCUMLG.IDTIERS = {pIdTiers}
AND DOCUMLG.REFCONST between {pDe} and {pA}
AND DOCUMLG.ETAT = {pEtat}
AND DOCUMLG.QTEREST <> 0
order by ABREV,REFCONST,ETAT

Le champ IDDOCUM correspond au magasin.
Je passe donc dans le paramètre {pNumMag} une chaine de caractère comme
"3,6,9" par exemple (pour lister les articles appartenants aux trois
magasins identifiés 3,6 et 9)
D'après mes essais, la requète ne prend en compte que le 1er magasin - dans
l'exemple le magasin n° 3 - au lieu de des 3 magasins (pour confirmer ce
défaut j'ai passé la chaine "6,3,9" et j'obtient les stocks du seul magasin
n° 6) !!!
J'ai exécuté la requète manuellement (avec SQLExec) et là les résultats sont
corrects. Le problème vient donc sur le IN dans le cas d'utilisation avec
iInitRequeteEtat(...)
Avez vous rencontré ce problème et connaissez vous une solution ?
Merci à tous
Phil


DOCUMLG.IDDOCUM -> texte alors {pNumMag} = '3','6','9' ou '3';'6';'9'
DOCUMLG.IDDOCUM -> numérique alors {pNumMag} = 3,6,9 ou 3;6;9

--
Cordialement JeAn-PhI
I.G.LOG
Le #14550781
> DOCUMLG.IDDOCUM -> texte alors {pNumMag} = '3','6','9' ou '3';'6';'9'
DOCUMLG.IDDOCUM -> numérique alors {pNumMag} = 3,6,9 ou 3;6;9



Bonjour,
IDDOCUM est un entier (clé étrangère correspondant à l'ID auto du corps de
document stock)
J'ai essayé les deux syntaxes sans succès:

lMag est une chaine

lMag = "3,6,9" // 1er essai -> pb idem
lMag = "'3','6','9'" // 2eme essai -> pb idem
iInitRequeteEtat(EARTICLE,lMag)
iImprimeEtat(EARTICLE)

// La requète
...
WHERE
DOCUMLG.IDDOCUM in ({pNumMag})
...

Encore merci
Publicité
Poster une réponse
Anonyme