Bonjour,
Tjrs mes pb avec HExecutreRequeteSQL sur MySQL. J'ai une erreur de syntaxe
near 'ARCLEUNIK = OL.ARCLEUNIK, DOSSIER DOSSIER left outer join CL'
sur le code suivant:
select OL.OLCLEUNIK, OL.TYPEPRE, OL.INDICE, OL.DATEDEB, OL.DELAI,
OL.NUMCONTROLE, OL.NUMSOC, OL.SUSPENDU, OL.CLOTURE, OL.PRCLEUNIK,
OL.ARCLEUNIK,
DOSSIER.NUMDOS, DOSSIER.NUMSOC as SocOrigine,
CLIENT.RAISON, CLIENT.CLIENTETAT,
ARTICLES.ABRCONST, ARTICLES.REFCONST, ARTICLES.NUMFAM
from
OL OL left outer join ARTICLES ARTICLES on ARTICLES.ARCLEUNIK =
OL.ARCLEUNIK,
DOSSIER DOSSIER left outer join CLIENT CLIENT on CLIENT.CLCLEUNIK =
DOSSIER.CLCLEUNIK
where OL.TERMINE = 0
and OL.NUMSOC = 1
and OL.NUMDEP = 1
and DOSSIER.DSCLEUNIK = OL.DSCLEUNIK
cette requete fonctionne sur HF7 mais pas sur MySQL 4.0.20c !
PS: Je suis en train d'essayer de migrer une grosse appli HF7 -> MySQL et
rares sont les requetes compatibles. Je croyais que SQL etait un langage
standardisé !!!!!!!!
J ai les memes soucis depuis que je migre mon appli. Ca y est, ce thread m a un peu (plus) eclairé. Cependant, le probleme sous windev, ce sont les doubles ou triples jointures. en MySQL, la requete de double jointure s ecrit : SELECT * FROM tab1 join tab2 as annucert on <condition1> join tab3 on <condition2>
tandis qu en windev, il veut : SELECT * FROM tab1 join tab2 as annucert on <condition1>, tab1 join tab3 on <condition2>
pour que ca compile sans warning.
Le probleme que j ai en ce moment : j utilise le hRequeteSansCorrection, mais windev me sors une erreur lors de son appel, bien que le resultat soit juste et qu il n y ait pas d incidence sur la suite (solution1). Par contre, si je respecte la syntaxe qui fait plaisir à windev, MySQL me jette lors de l appel de la requete (meme sans le hrequete sanscorrection).
Manu
"I.G.LOG" a écrit :
"Gégé" a écrit dans le message de news:cc18mt$gqm$ > I.G.LOG wrote: > > Apres essais, le probleme vient de HExecuteRequeteSQL() ! En effet, avec > > SQLExec() je n'ai plus d'erreur MySQL: > > Bingo ! >
Bonjour,
Précision (p'tet importante): en utilisant HExecuteRequeteSQL avec l'option hRequeteSansCorrection on arrive a un comportement identique a SQLExec() (qui marche donc avec MySQL) Mais... d'après les docs de PCSoft, SQLExec() est plus rapide que HExecuteRequeteSQL() sur acces natif mais moins rapide (que HExecuteRequeteSQL) sur HF ! (choisir donc en fonction de sa base); confirmé par mes tests !
J ai les memes soucis depuis que je migre mon appli.
Ca y est, ce thread m a un peu (plus) eclairé.
Cependant, le probleme sous windev, ce sont les doubles ou triples jointures.
en MySQL, la requete de double jointure s ecrit :
SELECT *
FROM tab1
join tab2 as annucert on <condition1>
join tab3 on <condition2>
tandis qu en windev, il veut :
SELECT *
FROM tab1
join tab2 as annucert on <condition1>,
tab1 join tab3 on <condition2>
pour que ca compile sans warning.
Le probleme que j ai en ce moment : j utilise le hRequeteSansCorrection, mais
windev me sors une erreur lors de son appel, bien que le resultat soit juste et
qu il n y ait pas d incidence sur la suite (solution1).
Par contre, si je respecte la syntaxe qui fait plaisir à windev, MySQL me jette
lors de l appel de la requete (meme sans le hrequete sanscorrection).
Manu
"I.G.LOG" a écrit :
"Gégé" <gerard.menvussa@ifrance.com> a écrit dans le message de
news:cc18mt$gqm$1@aphrodite.grec.isp.9tel.net...
> I.G.LOG wrote:
> > Apres essais, le probleme vient de HExecuteRequeteSQL() ! En effet, avec
> > SQLExec() je n'ai plus d'erreur MySQL:
>
> Bingo !
>
Bonjour,
Précision (p'tet importante): en utilisant HExecuteRequeteSQL avec l'option
hRequeteSansCorrection on arrive a un comportement identique a SQLExec()
(qui marche donc avec MySQL)
Mais... d'après les docs de PCSoft, SQLExec() est plus rapide que
HExecuteRequeteSQL() sur acces natif mais moins rapide (que
HExecuteRequeteSQL) sur HF ! (choisir donc en fonction de sa base); confirmé
par mes tests !
J ai les memes soucis depuis que je migre mon appli. Ca y est, ce thread m a un peu (plus) eclairé. Cependant, le probleme sous windev, ce sont les doubles ou triples jointures. en MySQL, la requete de double jointure s ecrit : SELECT * FROM tab1 join tab2 as annucert on <condition1> join tab3 on <condition2>
tandis qu en windev, il veut : SELECT * FROM tab1 join tab2 as annucert on <condition1>, tab1 join tab3 on <condition2>
pour que ca compile sans warning.
Le probleme que j ai en ce moment : j utilise le hRequeteSansCorrection, mais windev me sors une erreur lors de son appel, bien que le resultat soit juste et qu il n y ait pas d incidence sur la suite (solution1). Par contre, si je respecte la syntaxe qui fait plaisir à windev, MySQL me jette lors de l appel de la requete (meme sans le hrequete sanscorrection).
Manu
"I.G.LOG" a écrit :
"Gégé" a écrit dans le message de news:cc18mt$gqm$ > I.G.LOG wrote: > > Apres essais, le probleme vient de HExecuteRequeteSQL() ! En effet, avec > > SQLExec() je n'ai plus d'erreur MySQL: > > Bingo ! >
Bonjour,
Précision (p'tet importante): en utilisant HExecuteRequeteSQL avec l'option hRequeteSansCorrection on arrive a un comportement identique a SQLExec() (qui marche donc avec MySQL) Mais... d'après les docs de PCSoft, SQLExec() est plus rapide que HExecuteRequeteSQL() sur acces natif mais moins rapide (que HExecuteRequeteSQL) sur HF ! (choisir donc en fonction de sa base); confirmé par mes tests !
Manu
"Manuel Pavy" a écrit dans le message news:
J ai les memes soucis depuis que je migre mon appli. Ca y est, ce thread m a un peu (plus) eclairé. Cependant, le probleme sous windev, ce sont les doubles ou triples
jointures.
en MySQL, la requete de double jointure s ecrit : SELECT * FROM tab1 join tab2 as annucert on <condition1> join tab3 on <condition2>
tandis qu en windev, il veut : SELECT * FROM tab1 join tab2 as annucert on <condition1>, tab1 join tab3 on <condition2>
Cela peut ressembler à du prosélistisme mais cela n'en est pas.
Rien de tel pour cela qu'une classe qui te génère ton code (cGestionSQL) ou qui en fait totalement abstraction (SQLManagerX). Dans ton cas c'est surtout la 1ère qui serait utile. Car, il te suffirait de la récupérer sur le site de Eric, d'ajouter un mode MySQLparWindev et de modifier la fonction Rtv_ReqSQL pour qu'elle te génère ton code comme tu veux. Premier avantage, tu as 1 seul code à maintenir (en plus il est simple à relire) et il est capable de te générer la requete pour ton cas précis mais aussi pour MySQL et Oracle (du moment que c'est une requete sans fonction). Deuxième avantage : vous êtes plusieurs à avoir le problème! dès que tu as fais ton évolution, tu le mets à dispo de la communauté et en moins de 1 semaine si toutes les pesronnes qui rencontrent le problèmes testent aussi tu as fais faire un grand pas pour toute la communauté.
Pour rappel : Voici un bout de code au final dans ton application :
"Manuel Pavy" <manuel.pavy@onecert.fr> a écrit dans le message news:
40ED07BD.6F30C4D5@onecert.fr...
J ai les memes soucis depuis que je migre mon appli.
Ca y est, ce thread m a un peu (plus) eclairé.
Cependant, le probleme sous windev, ce sont les doubles ou triples
jointures.
en MySQL, la requete de double jointure s ecrit :
SELECT *
FROM tab1
join tab2 as annucert on <condition1>
join tab3 on <condition2>
tandis qu en windev, il veut :
SELECT *
FROM tab1
join tab2 as annucert on <condition1>,
tab1 join tab3 on <condition2>
Cela peut ressembler à du prosélistisme mais cela n'en est pas.
Rien de tel pour cela qu'une classe qui te génère ton code (cGestionSQL) ou
qui en fait totalement abstraction (SQLManagerX).
Dans ton cas c'est surtout la 1ère qui serait utile. Car, il te suffirait de
la récupérer sur le site de Eric, d'ajouter un mode MySQLparWindev et de
modifier la fonction Rtv_ReqSQL pour qu'elle te génère ton code comme tu
veux.
Premier avantage, tu as 1 seul code à maintenir (en plus il est simple à
relire) et il est capable de te générer la requete pour ton cas précis mais
aussi pour MySQL et Oracle (du moment que c'est une requete sans fonction).
Deuxième avantage : vous êtes plusieurs à avoir le problème! dès que tu as
fais ton évolution, tu le mets à dispo de la communauté et en moins de 1
semaine si toutes les pesronnes qui rencontrent le problèmes testent aussi
tu as fais faire un grand pas pour toute la communauté.
Pour rappel :
Voici un bout de code au final dans ton application :
J ai les memes soucis depuis que je migre mon appli. Ca y est, ce thread m a un peu (plus) eclairé. Cependant, le probleme sous windev, ce sont les doubles ou triples
jointures.
en MySQL, la requete de double jointure s ecrit : SELECT * FROM tab1 join tab2 as annucert on <condition1> join tab3 on <condition2>
tandis qu en windev, il veut : SELECT * FROM tab1 join tab2 as annucert on <condition1>, tab1 join tab3 on <condition2>
Cela peut ressembler à du prosélistisme mais cela n'en est pas.
Rien de tel pour cela qu'une classe qui te génère ton code (cGestionSQL) ou qui en fait totalement abstraction (SQLManagerX). Dans ton cas c'est surtout la 1ère qui serait utile. Car, il te suffirait de la récupérer sur le site de Eric, d'ajouter un mode MySQLparWindev et de modifier la fonction Rtv_ReqSQL pour qu'elle te génère ton code comme tu veux. Premier avantage, tu as 1 seul code à maintenir (en plus il est simple à relire) et il est capable de te générer la requete pour ton cas précis mais aussi pour MySQL et Oracle (du moment que c'est une requete sans fonction). Deuxième avantage : vous êtes plusieurs à avoir le problème! dès que tu as fais ton évolution, tu le mets à dispo de la communauté et en moins de 1 semaine si toutes les pesronnes qui rencontrent le problèmes testent aussi tu as fais faire un grand pas pour toute la communauté.
Pour rappel : Voici un bout de code au final dans ton application :