Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

4 réponses
Avatar
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

4 réponses

Avatar
JeAn-PhI
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
Avatar
JeAn-PhI
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
Avatar
I.G.LOG
> 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
Avatar
I.G.LOG
> 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