OVH Cloud OVH Cloud

WD8/MySQL et requetes parametrees

2 réponses
Avatar
I.G.LOG
Bonjour,

Peut-on utiliser les requetes parametrees avec MySQL/WD8 ?

Soit la requete parametree:

select F4.F4CLEUNIK, F4.DATE, F.RAISON, S.RAISON as SocieteRAison,
A.DESIGNATION, A.REFCONST, L.F5CLEUNIK, L.QTE
from FOUCOM F4, FOUCOMLG L, FOURNISS F, SOCIETE S, ARTICLE A
where (F4.TERMINE = 0)
and (F.FOCLEUNIK = F4.FOCLEUNIK)
and (L.F4CLEUNIK = F4.F4CLEUNIK)
and (F4.NUMSOC = S.NUMSOC)
and (A.IDARTICLE = L.IDARTICLE)
and (F.RAISON between {pDe} and {pA})
and (F.CODEPOST like {pCP}%)
and (S.NUMSOC = {pNumSoc})
and (A.ABRCONST = {pAbrConst})
and (L.QTE > (select sum(R.QTE) from FOULIVCD R where R.F5CLEUNIK =
L.F5CLEUNIK))
order by RAISON,F4CLEUNIK

Question 1:
Avec HF, on peut ne pas passer de parametres, la requete est alors executee
sans la condition. Cela ne semble pas etre le cas avec MySQL ?

Question 2:
Par ailleurs, dans la doc MySQL, le BETWEEN n'impose pas de guillemets alors
qu'a l'execution, j'ai une errreur de syntaxe; si je mets les guillemets:
"exemple: F.RAISON between '{pDe}' and '{pA}'" ca a l'aire de marcher

Merci a tous

2 réponses

Avatar
Guillaume
"I.G.LOG" a écrit dans le message de
news:cg1sgn$8fe$
Bonjour,

Peut-on utiliser les requetes parametrees avec MySQL/WD8 ?

Soit la requete parametree:

select F4.F4CLEUNIK, F4.DATE, F.RAISON, S.RAISON as SocieteRAison,
A.DESIGNATION, A.REFCONST, L.F5CLEUNIK, L.QTE
from FOUCOM F4, FOUCOMLG L, FOURNISS F, SOCIETE S, ARTICLE A
where (F4.TERMINE = 0)
and (F.FOCLEUNIK = F4.FOCLEUNIK)
and (L.F4CLEUNIK = F4.F4CLEUNIK)
and (F4.NUMSOC = S.NUMSOC)
and (A.IDARTICLE = L.IDARTICLE)
and (F.RAISON between {pDe} and {pA})
and (F.CODEPOST like {pCP}%)
and (S.NUMSOC = {pNumSoc})
and (A.ABRCONST = {pAbrConst})
and (L.QTE > (select sum(R.QTE) from FOULIVCD R where R.F5CLEUNIK > L.F5CLEUNIK))
order by RAISON,F4CLEUNIK

Question 1:
Avec HF, on peut ne pas passer de parametres, la requete est alors


executee
sans la condition. Cela ne semble pas etre le cas avec MySQL ?



Ceci est normal ; PC$oft a pris des libertés avec la norme. C'est une
curieuse façon de procéder qui présente cependant certaines facilités. Mais
ce n'est pas la norme.

Question 2:
Par ailleurs, dans la doc MySQL, le BETWEEN n'impose pas de guillemets


alors
qu'a l'execution, j'ai une errreur de syntaxe; si je mets les guillemets:
"exemple: F.RAISON between '{pDe}' and '{pA}'" ca a l'aire de marcher



Dans ces cas pourquoi n'écris-tu pas une requête pur et fais appel à
HExecuteRequeteSQL avec le paramètre RequeteSansCorrection ? Cela t'éviteras
toutes ces accrobaties.
digging
Avatar
I.G.LOG
> Dans ces cas pourquoi n'écris-tu pas une requête pur et fais appel à
HExecuteRequeteSQL avec le paramètre RequeteSansCorrection ? Cela


t'éviteras
toutes ces accrobaties.
digging




Bonjour,
Ces requetes parametrees sont integrees dans un etat, que j'appelle par
iInitRequeteEtat(<Nom_Etat>,param1,param2...) et c'est ca mon probleme: je
ne vois pas comment executer la requete (puisque pas compatible avec MySQL)
puis lancer l'etat (j'aurias aime pouvoir faire
hExecuteRequeteSQL("REQ",hSansCorrection,n...) suivi de
iImprimeEtat("ETAT","REQ") mais ca ne semble pas possible. Je m'oriente vers
les etats avec requete sur connexion ODBC ou acces natif.... mais il faut
retaper tout le code, ce que je prefererais eviter bien sur.
Peut-etre une autre solution ?
Merci