WD12 -44p - requete parametree (encore des problemes !!)

Le
I.G.LOG
Bonsoir à tous,
Je craque vraiment avec ces etats bases sur requete parametree. Ca fait plus
de deux heures que je suis sur un probleme, sans n'y rien comprendre.
J'ai une requete parametree comme suit:

SELECT
DOCUM.PRIX,DOCUM.NUMDEVGEN,DOCUM.DATE
,TIERS.IDTIERS,TIERS.RAISON
,SOCIETE.RAISON AS SocieteRaison
FROM
DOCUM INNER JOIN T_DONNC ON ID_LIGNE = IDDOCUM
,TIERS
,TIERS AS SOCIETE
WHERE
DOCUM.IDTYPE = {pType}
AND DOCUM.DATE BETWEEN {pDateDe} AND {pDateA}
AND TIERS.IDTIERS = DOCUM.IDTIERS
AND TIERS.RAISON BETWEEN {pDe} AND {pA}
AND TIERS.CODEPOST LIKE {pCP}%
AND TIERS.TIERSETAT = {pType}
AND TIERS.IDTIERSFAM = {pCat}
AND ID_COL = {pLien}
AND _VALEUR = {pIdsoc}
AND SOCIETE.IDTIERS = _VALEUR
ORDER BY RAISON, IDTIERS

que j'initialise avec le code suivant:

RCliCA.pType = 24
RCliCA.pLien = 5
RCliCA.pIdsoc = 1
HExécuteRequête(RCliCA)
Info(HNbEnr(RCliCA)) // me donne 9 enreg
seulement au lieu de 5337 !!!

(Nota: probleme identique avec iIniteRequeteEtat(pParam1,pParam2,)


si j'execute la même requete avec SQLExec() j'ai bien 5337 enreg.
avec le code

lCond = "SELECT " +
"DOCUM.PRIX,DOCUM.NUMDEVGEN,DOCUM.DATE " +
",TIERS.IDTIERS,TIERS.RAISON " +
",SOCIETE.RAISON AS SocieteRaison " +
"from " +
"DOCUM INNER JOIN T_DONNC ON ID_LIGNE = IDDOCUM " +
",TIERS " +
",TIERS as SOCIETE " +
"where " +
"DOCUM.IDTYPE = 24 " +
"and TIERS.IDTIERS = DOCUM.IDTIERS " +
"and ID_COL = 5 " +
"and _VALEUR = 1" +
"and SOCIETE.IDTIERS = _VALEUR " +
"order by RAISON, IDTIERS"
SQLExec(lcond,"Req") // OK !!!

Si vous avez une idée ca m'evitera de m'arracher les cheveux pendant des
heures là dessus !

Merci à tous
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 #14529131
I.G.LOG a formulé ce mercredi :
Bonsoir à tous,
Je craque vraiment avec ces etats bases sur requete parametree. Ca fait plus
de deux heures que je suis sur un probleme, sans n'y rien comprendre.
J'ai une requete parametree comme suit:

SELECT
DOCUM.PRIX,DOCUM.NUMDEVGEN,DOCUM.DATE
,TIERS.IDTIERS,TIERS.RAISON
,SOCIETE.RAISON AS SocieteRaison
FROM
DOCUM INNER JOIN T_DONNC ON ID_LIGNE = IDDOCUM
,TIERS
,TIERS AS SOCIETE
WHERE
DOCUM.IDTYPE = {pType}
AND DOCUM.DATE BETWEEN {pDateDe} AND {pDateA}
AND TIERS.IDTIERS = DOCUM.IDTIERS
AND TIERS.RAISON BETWEEN {pDe} AND {pA}
AND TIERS.CODEPOST LIKE {pCP}%
AND TIERS.TIERSETAT = {pType}
AND TIERS.IDTIERSFAM = {pCat}
AND ID_COL = {pLien}
AND _VALEUR = {pIdsoc}
AND SOCIETE.IDTIERS = _VALEUR
ORDER BY RAISON, IDTIERS

que j'initialise avec le code suivant:

RCliCA.pType = 24
RCliCA.pLien = 5
RCliCA.pIdsoc = 1
HExécuteRequête(RCliCA)
Info(HNbEnr(RCliCA)) // me donne 9 enreg seulement
au lieu de 5337 !!!

(Nota: probleme identique avec iIniteRequeteEtat(pParam1,pParam2,...)


si j'execute la même requete avec SQLExec() j'ai bien 5337 enreg.
avec le code

lCond = "SELECT " +...
"DOCUM.PRIX,DOCUM.NUMDEVGEN,DOCUM.DATE " +...
",TIERS.IDTIERS,TIERS.RAISON " +...
",SOCIETE.RAISON AS SocieteRaison " +...
"from " +...
"DOCUM INNER JOIN T_DONNC ON ID_LIGNE = IDDOCUM " +...
",TIERS " +...
",TIERS as SOCIETE " +...
"where " +...
"DOCUM.IDTYPE = 24 " +...
"and TIERS.IDTIERS = DOCUM.IDTIERS " +...
"and ID_COL = 5 " +...
"and _VALEUR = 1" +...
"and SOCIETE.IDTIERS = _VALEUR " +...
"order by RAISON, IDTIERS"
SQLExec(lcond,"Req") // OK !!!

Si vous avez une idée... ca m'evitera de m'arracher les cheveux pendant des
heures là dessus !

Merci à tous



sauf erreur les 2 req ne sont pas identique

en plus dans la 1ère :
- DOCUM.DATE BETWEEN {pDateDe} AND {pDateA}
- TIERS.RAISON BETWEEN {pDe} AND {pA}
- TIERS.CODEPOST LIKE {pCP}%
- TIERS.TIERSETAT = {pType}
- TIERS.IDTIERSFAM = {pCat}

--
Cordialement JeAn-PhI
JeAn-PhI
Le #14529121
I.G.LOG a écrit :
sauf erreur les 2 req ne sont pas identique

en plus dans la 1ère :
- DOCUM.DATE BETWEEN {pDateDe} AND {pDateA}
- TIERS.RAISON BETWEEN {pDe} AND {pA}
- TIERS.CODEPOST LIKE {pCP}%
- TIERS.TIERSETAT = {pType}
- TIERS.IDTIERSFAM = {pCat}

--
Cordialement JeAn-PhI



Bonjour,
Je n'initialise pas les paramètres DateDe,DateA,pDe,pA,pCP,pCat, donc, à
moins que je ne me trompe, la requete ne devrait pas en tenir compte ?!

Seuls pType,pLien et pIdSoc sont renseignés !

Voici le code:

RCliCA.pType = 24
RCliCA.pLien = 5
RCliCA.pIdsoc = 1
HExécuteRequête(RCliCA)
Info(HNbEnr(RCliCA)) // me donne 9 enreg seulement
au lieu de 5337 !!!

Encore merci



il faut justement les init à null pour qui ne soit pas pris en compte
donc faire :

RCliCA.pDateDe = Null
etc.

--
Cordialement JeAn-PhI
I.G.LOG
Le #14529111
> sauf erreur les 2 req ne sont pas identique

en plus dans la 1ère :
- DOCUM.DATE BETWEEN {pDateDe} AND {pDateA}
- TIERS.RAISON BETWEEN {pDe} AND {pA}
- TIERS.CODEPOST LIKE {pCP}%
- TIERS.TIERSETAT = {pType}
- TIERS.IDTIERSFAM = {pCat}

--
Cordialement JeAn-PhI



Bonjour,
Je n'initialise pas les paramètres DateDe,DateA,pDe,pA,pCP,pCat, donc, à
moins que je ne me trompe, la requete ne devrait pas en tenir compte ?!

Seuls pType,pLien et pIdSoc sont renseignés !

Voici le code:

RCliCA.pType = 24
RCliCA.pLien = 5
RCliCA.pIdsoc = 1
HExécuteRequête(RCliCA)
Info(HNbEnr(RCliCA)) // me donne 9 enreg seulement
au lieu de 5337 !!!

Encore merci
I.G.LOG
Le #14529091
> il faut justement les init à null pour qui ne soit pas pris en compte
donc faire :

RCliCA.pDateDe = Null
etc.



Une bêtise de ma part: j'ai deux fois le même nom de paramètre {pType} !!!
L'erreur vient de là !
Pour ce qui est des null, j'ai fait des essais: pas indispensable de les
initailiser à null.
Merci de t'être penché sur ce problème... et désolé pour mon erreur (due à
la fatigue)
Cordialement
Phil
Publicité
Poster une réponse
Anonyme