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

Erreur 22 HExecuteRequete et MySQL 4.1.22

6 réponses
Avatar
I.G.LOG
Bonjour,
J'ai une erreur 22 sur un accès natif MySQL (4.1.22) que je n'arrive pas à
résoudre. Voici la requete:

SELECT
TYPEPREST.DESIGNATION,
PRESTATION.DESIGNATION AS PrestationDesignation,
CATEGOR.DESIGNATION AS CategorDesignation,
docum.IDDOCUM,docum.REFDOC,docum.IDSOC,
documlg.REFCONST,documlg.DESIGNATION,documlg.NUMENS
FROM
docum,
documlg LEFT JOIN t_donnc ON
(t_donnc.ID_LIGNE = documlg.IDDOCUMLG
AND TCOLCAT.ID_COL = t_donnc.ID_COL // <- là qu'il ya
l'erreur
AND TCARCAT.ID_CAR = TCOLCAT.ID_CAR
AND TCARCAT._NOM = 'PT_ARTICLE'),
type AS TYPEP, type AS TYPEA,
tiers,
article AS CATEGOR, article AS PRESTATION, article AS TYPEPREST,
t_col AS TCOLD, t_caract AS TCARD,
t_col AS TCOLCAT, t_caract AS TCARCAT,
arbre AS ARBREP, arbre AS ARBREA
WHERE ...

Lors de l'execution avec Windev 12 (55n) par

si pas HExécuteRequête(OLDelais) alors
Erreur(HErreurInfo())
fin

j'ai l'erreur 22 suivante:

N° d'erreur = <1064>
You have an erreor in your SQL syntax; check ... near '.ID_LIGNE =
documlg.IDDOCUMLG and TCOLCAT.ID_COL = t_donnc.ID_C' at line 2.

J'ai exécuté cette même requete avec le frontal MySQL Control Center sans
soucis. Il n'y a qu'avec Windev que ça plante !!!

Avez vous une idée d'où peut venir le problème ?

Merci à tous

6 réponses

Avatar
Firetox
Bonjour,

et avec :
HExécuteRequêteSQL ave hRequêteSansCorrection

@+


"I.G.LOG" a écrit dans le message de news:
483d8445$0$918$
Bonjour,
J'ai une erreur 22 sur un accès natif MySQL (4.1.22) que je n'arrive pas à
résoudre. Voici la requete:

SELECT
TYPEPREST.DESIGNATION,
PRESTATION.DESIGNATION AS PrestationDesignation,
CATEGOR.DESIGNATION AS CategorDesignation,
docum.IDDOCUM,docum.REFDOC,docum.IDSOC,
documlg.REFCONST,documlg.DESIGNATION,documlg.NUMENS
FROM
docum,
documlg LEFT JOIN t_donnc ON
(t_donnc.ID_LIGNE = documlg.IDDOCUMLG
AND TCOLCAT.ID_COL = t_donnc.ID_COL // <- là qu'il ya
l'erreur
AND TCARCAT.ID_CAR = TCOLCAT.ID_CAR
AND TCARCAT._NOM = 'PT_ARTICLE'),
type AS TYPEP, type AS TYPEA,
tiers,
article AS CATEGOR, article AS PRESTATION, article AS TYPEPREST,
t_col AS TCOLD, t_caract AS TCARD,
t_col AS TCOLCAT, t_caract AS TCARCAT,
arbre AS ARBREP, arbre AS ARBREA
WHERE ...

Lors de l'execution avec Windev 12 (55n) par

si pas HExécuteRequête(OLDelais) alors
Erreur(HErreurInfo())
fin

j'ai l'erreur 22 suivante:

N° d'erreur = <1064>
You have an erreor in your SQL syntax; check ... near '.ID_LIGNE =
documlg.IDDOCUMLG and TCOLCAT.ID_COL = t_donnc.ID_C' at line 2.

J'ai exécuté cette même requete avec le frontal MySQL Control Center sans
soucis. Il n'y a qu'avec Windev que ça plante !!!

Avez vous une idée d'où peut venir le problème ?

Merci à tous



Avatar
I.G.LOG
"Firetox" a écrit dans le message de news:
483d85ff$0$10364$
Bonjour,

et avec :
HExécuteRequêteSQL ave hRequêteSansCorrection

@+




Bonsoir,
Oui elle fonctionne avec
HExécuteRequêteSQL("Req",CNXNom,hRequêteSansCorrection,lCond)
Le problème est que cette requete est une requete paramétrée, je l'utilise
dans une état par iInitRequeteEtat(...).
Je ne peux pas donc pas l'executer directement.
A moins qu'il y ait uen autre solution ?
Encore merci
Avatar
mat
I.G.LOG wrote:
Bonsoir,
Oui elle fonctionne avec
HEx?uteRequ?eSQL("Req",CNXNom,hRequ?eSansCorrection,lCond)
Le probl?e est que cette requete est une requete param?r?, je l'utilise
dans une ?at par iInitRequeteEtat(...).
Je ne peux pas donc pas l'executer directement.
A moins qu'il y ait uen autre solution ?
Encore merci





Bonjour,

oui on peut utiliser hExecuteRequeteSQL avec paramètres directement dans
l'ouverture de l'état.

Salutations

Mat
Avatar
I.G.LOG
>
oui on peut utiliser hExecuteRequeteSQL avec paramètres directement dans
l'ouverture de l'état.




Bonjour,
Je ne connais pas cette methode.
Comment passe-t-on la requete et les paramètres dans ce cas ? Dans le code
"ouverture de l'état" ?

// Ouverture de l'état
PROCEDURE (pRequete,pParam1,pParam2,....)

HExécuteRequêteSQL("Req",CnxNom,hRequêteSansCorrection,pRequete)

RETOUR


Et peut-on utiliser par la suite "MaSource" pour acceder aux donnees ?


Encore merci
Avatar
mat
I.G.LOG wrote:
Bonjour,
Je ne connais pas cette methode.
Comment passe-t-on la requete et les param?res dans ce cas ? Dans le code
"ouverture de l'?at" ?

// Ouverture de l'?at
PROCEDURE (pRequete,pParam1,pParam2,....)

HEx?uteRequ?eSQL("Req",CnxNom,hRequ?eSansCorrection,pRequete)

RETOUR


Et peut-on utiliser par la suite "MaSource" pour acceder aux donnees ?


Encore merci






Bonsoir,

les paramètres se passent comme toujours avec hExecuteRequeteSQL. Dans
le cas ci-dessus pRequete est la chaine SQL construit à l'extérieur de
l'état ("SELECT ABC FROM FILE WHERE PARAM1 = "+pParam1+" "...). Donc en
principe on n'a plus besoin de paramètres pour la requête. Mais on peut
aussi bien utiliser une requête standard et ensuite la syntaxe

maRequete.Param1 = pParam1, etc,
ou bien
hExecuteRequeteSQL(maRequete, CnxNom, hRequeteSansCorrection, pRequete,
pParam1, etc)

Une fois exécuté, je fais
MonEtat..NomSource = MaRequete
pour attribuer les données aux champs de l'état créé à l'aide d'une
requete "bidon" du projet. Aucune importance quel fichier est lié, aussi
longtemps qu'elle inclut les types des champs à imprimer et que les noms
des rubriques de la requete bidon et SQL soient les mêmes. Cela permet
d'utiliser le même état pour des tâches similaires avec des données
provenant de fichiers différents.

Salutations

Mat
Avatar
I.G.LOG
Bonjour Mat,

Je vais essayer ca.
Merci beaucoup pour la reponse
Bon dev.
Phil