OVH Cloud OVH Cloud

HExecuteRequeteSQL et MySQL

22 réponses
Avatar
I.G.LOG
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é !!!!!!!!

10 réponses

1 2 3
Avatar
Gégé
I.G.LOG wrote:

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é !!!!!!!!


SQL est standardisé. As-tu essayé :
1- d'exécuter cette requête depuis PhpMyAdmin pour voir si la syntaxe
est bien correct ;
2- d'utiliser les fonctions SQL... du W-Langage ?
Avatar
Manu
> 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é !!!!!!!!



cela donne quoi si tu enlève les alias en mettant :
OL left outer join ARTICLES on ARTICLES.ARCLEUNIK et
DOSSIER left outer join CLIENT on CLIENT.CLCLEUNIK =
Avatar
I.G.LOG
Pas beaucoup de réponses, je reformule en modifiant le texte de la requete :

select OL.OLCLEUNIK, ARTICLES.ABRCONST, DOSSIER.NUMDOS from
OL OL left outer join ARTICLES ARTICLES on ARTICLES.ARCLEUNIK OL.ARCLEUNIK,
OL OL left outer join DOSSIER DOSSIER on DOSSIER.DSCLEUNIK = OL.DSCLEUNIK
where OL.TERMINE = 0"

là j'ai une erreur MySQL "OL not unique". On ne peut pas faire 2 jointures
externe sur la même table ?

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é !!!!!!!!
Avatar
Gégé
I.G.LOG wrote:

Pas beaucoup de réponses, je reformule en modifiant le texte de la requete :


Quoi ? Il y a en 2 juste au dessus.

select OL.OLCLEUNIK, ARTICLES.ABRCONST, DOSSIER.NUMDOS from
OL OL left outer join ARTICLES ARTICLES on ARTICLES.ARCLEUNIK > OL.ARCLEUNIK,
OL OL left outer join DOSSIER DOSSIER on DOSSIER.DSCLEUNIK = OL.DSCLEUNIK
where OL.TERMINE = 0"

là j'ai une erreur MySQL "OL not unique". On ne peut pas faire 2 jointures
externe sur la même table ?


Un alias ne peut porter le même nom que la table. Enlève le second OL.

PS: T'es un fan des champions de France ;-)
Avatar
Manu
> Pas beaucoup de réponses, je reformule en modifiant le texte de la
requete :

select OL.OLCLEUNIK, ARTICLES.ABRCONST, DOSSIER.NUMDOS from
OL OL left outer join ARTICLES ARTICLES on ARTICLES.ARCLEUNIK > OL.ARCLEUNIK,
OL OL left outer join DOSSIER DOSSIER on DOSSIER.DSCLEUNIK > OL.DSCLEUNIK where OL.TERMINE = 0"

là j'ai une erreur MySQL "OL not unique". On ne peut pas faire 2
jointures externe sur la même table ?



Même réponse :

select OL.OLCLEUNIK, ARTICLES.ABRCONST, DOSSIER.NUMDOS from
OL left outer join ARTICLES on ARTICLES.ARCLEUNIK = OL.ARCLEUNIK,
OL left outer join DOSSIER on DOSSIER.DSCLEUNIK = OL.DSCLEUNIK
where OL.TERMINE = 0


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é !!!!!!!!


Avatar
I.G.LOG
> cela donne quoi si tu enlève les alias en mettant :
OL left outer join ARTICLES on ARTICLES.ARCLEUNIK > et
DOSSIER left outer join CLIENT on CLIENT.CLCLEUNIK


Bonjour,
Ca donne la même erreur !
Et par contre la requete fonctionne sur HF7 !
Avatar
I.G.LOG
> SQL est standardisé. As-tu essayé :
1- d'exécuter cette requête depuis PhpMyAdmin pour voir si la syntaxe
est bien correct ;
2- d'utiliser les fonctions SQL... du W-Langage ?



Bonjour,
Je n'ai pas PhpMyAdmin. Mais ce qui est bizarre, c'est que la même requete
fonctionne avec HF7 mais pas avec MySQL et ceci en utilisant
HExecuteRequeteSQL(lReq,lTxtSQL). Est-ce un "défaut" de l'acces natif WD ?
Avatar
Gégé
I.G.LOG wrote:
SQL est standardisé. As-tu essayé :
1- d'exécuter cette requête depuis PhpMyAdmin pour voir si la syntaxe
est bien correct ;
2- d'utiliser les fonctions SQL... du W-Langage ?



Je n'ai pas PhpMyAdmin. Mais ce qui est bizarre, c'est que la même requete
fonctionne avec HF7 mais pas avec MySQL et ceci en utilisant
HExecuteRequeteSQL(lReq,lTxtSQL). Est-ce un "défaut" de l'acces natif WD ?



Justement c'est pour cela qu'il faut tester. Tu ne peux pas la 1, que
donne la 2 ?
Avatar
I.G.LOG
lCond = "select OL.OLCLEUNIK, ARTICLES.ABRCONST, DOSSIER.NUMDOS from " +...
"OL left outer join ARTICLES on ARTICLES.ARCLEUNIK = OL.ARCLEUNIK, " +...
"OL left outer join DOSSIER on DOSSIER.DSCLEUNIK = OL.DSCLEUNIK " +...
"where OL.TERMINE = 0"
HExecuteRequeteSQL(lReq,lCond) renvoie toujours la meme erreur "OL not
unique" !!!!!!!

"Manu" a écrit dans le message de
news:cbujco$77v$
> Pas beaucoup de réponses, je reformule en modifiant le texte de la
> requete :
>
> select OL.OLCLEUNIK, ARTICLES.ABRCONST, DOSSIER.NUMDOS from
> OL OL left outer join ARTICLES ARTICLES on ARTICLES.ARCLEUNIK > > OL.ARCLEUNIK,
> OL OL left outer join DOSSIER DOSSIER on DOSSIER.DSCLEUNIK > > OL.DSCLEUNIK where OL.TERMINE = 0"
>
> là j'ai une erreur MySQL "OL not unique". On ne peut pas faire 2
> jointures externe sur la même table ?

Même réponse :

select OL.OLCLEUNIK, ARTICLES.ABRCONST, DOSSIER.NUMDOS from
OL left outer join ARTICLES on ARTICLES.ARCLEUNIK = OL.ARCLEUNIK,
OL left outer join DOSSIER on DOSSIER.DSCLEUNIK = OL.DSCLEUNIK
where OL.TERMINE = 0


> 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é !!!!!!!!




Avatar
I.G.LOG
"Gégé" a écrit dans le message de
news:cbulbh$l40$
I.G.LOG wrote:
>>SQL est standardisé. As-tu essayé :
>>1- d'exécuter cette requête depuis PhpMyAdmin pour voir si la syntaxe
>>est bien correct ;
>>2- d'utiliser les fonctions SQL... du W-Langage ?
>
> Je n'ai pas PhpMyAdmin. Mais ce qui est bizarre, c'est que la même


requete
> fonctionne avec HF7 mais pas avec MySQL et ceci en utilisant
> HExecuteRequeteSQL(lReq,lTxtSQL). Est-ce un "défaut" de l'acces natif WD


?

Justement c'est pour cela qu'il faut tester. Tu ne peux pas la 1, que
donne la 2 ?



Je ne comprend pas pour le point 2: j'utilise bien la fonction SQL du
W-Langage HExecuteRequeteSQL() qui plante sur MySQL mais pas sur HyperFile !
1 2 3