[R] Error near "," : Syntax error

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

[R] Error near "," : Syntax error

#1

Message par GMH »

Bonjour,

Ce code affiche l'erreur Error near "," : Syntax error

Code : Tout sélectionner

If Not _SQLite_Exec ($bdd, "INSERT INTO Main VALUES ("&$a[1]&","&$a[2]&","&$a[3]&","&$a[4]&","&$a[5]&","&$a[6]&","&$a[7]&","&$a[8]&","&$a[9]&","&$a[10]&","&$a[11]&","&$a[12]&","&$a[13]&","&$a[14]&","&$a[15]&");") = $SQLITE_OK Then  MsgBox(16, "SQLite Error", _SQLite_ErrMsg ())
Je ne vois pas mon erreur. La voyez-vous ?

Je vous remercie.
Modifié en dernier par GMH le dim. 01 mai 2016 20:42, modifié 1 fois.
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Error near "," : Syntax error

#2

Message par blacksoul305 »

Bonsoir !

Personnellement, je n'en vois pas. Maintenant que contient $a ? Des entiers, des chaînes de caractères, des flottants ?
Étudiant en 2ème année de Licence Informatique.
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Error near "," : Syntax error

#3

Message par GMH »

Bonsoir et merci.

Voici l'affichage dans la console :
! SQLite.au3 Error
--> Function: _SQLite_Exec
--> Query: INSERT INTO Main VALUES (55,1462097222,Bouvines,0,0, -1789343705,0, -1,,30.0,3.0,0,1462097222,0.0,0.0);
--> Error: near ",": syntax error
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Error near "," : Syntax error

#4

Message par blacksoul305 »

Je crois que $a[9] (si je sais encore compter) n'est pas évalué, il y a donc deux virgules consécutives. Il faudrait revoir le code qui permet de générer le tableau et voir pourquoi cette valeur ne va pas bien.
Étudiant en 2ème année de Licence Informatique.
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Error near "," : Syntax error

#5

Message par GMH »

La valeur $a[9] est vide.
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Error near "," : Syntax error

#6

Message par blacksoul305 »

Mais si on tentait de la remplacer par NULL plutôt ? La sortie console me semble normale à priori, le seul truc qui pourrait coincer syntaxiquement c'est ça, sinon je vois pas.
Étudiant en 2ème année de Licence Informatique.
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Error near "," : Syntax error

#7

Message par GMH »

J'ai d'autre part l'erreur suivante si $a[3] contient un espace.
--> Query: INSERT INTO Main VALUES (39,1462094455,Ville Neuve,0,0,196448602,0,-1,,22.0,3.0,0,1462094666,0.0,0.0);
--> Error: near "Neuve": syntax error
Et je retrouve la première erreur si j'enlève l'espace :
--> Query: INSERT INTO Main VALUES (39,1462094455,Villeneuve,0,0,196448602,0,-1,,22.0,3.0,0,1462094666,0.0,0.0);
--> Error: near ",": syntax error
Avec NULL j'obtiens cette erreur :
Query: INSERT INTO Main VALUES (55,1462097222,Bouvines,0,0, -1789343705,0, -1,NULL,30.0,3.0,0,1462097222,0.0,0.0);
--> Error: no such column: Bouvines
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Error near "," : Syntax error

#8

Message par blacksoul305 »

Le fait que "Ville Neuve" entraîne une erreur est parfaitement normale dans le sens où les chaînes de caractères sont normalement entre ' '. Ainsi 'Ville Neuve' devrait pas poser de problème.

Après pour le reste, j'en sais rien. Est-il possible d'avoir la structure de la table ? J'ai pas encore assez d'expérience en MySQL et j'ai encore du mal à déboguer mes propres requêtes haha !
Étudiant en 2ème année de Licence Informatique.
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Error near "," : Syntax error

#9

Message par GMH »

L'erreur était bien en $a[3]. Ce champ étant rempli par un string, j'ai rajouté les quotes comme vous me l'avez fait remarquer :
If Not _SQLite_Exec ($bdd, "INSERT INTO Main VALUES ("&$a[1]&","&$a[2]&",'"&$a[3]&"',"&$a[4]&","&$a[5]&","&$a[6]&","&$a[7]&","&$a[8]&","&$a[9]&","&$a[10]&","&$a[11]&","&$a[12]&","&$a[13]&","&$a[14]&","&$a[15]&");") = $SQLITE_OK Then MsgBox(16, "SQLite Error", _SQLite_ErrMsg ())
Plus aucune erreur n'est désormais signalée.

Grand merci à vous !
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [R] Error near "," : Syntax error

#10

Message par blacksoul305 »

Bon, finalement c'était cette vilaine chaîne de caractères !

A bientôt et bon courage pour votre projet !
Étudiant en 2ème année de Licence Informatique.
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [R] Error near "," : Syntax error

#11

Message par GMH »

Je vous remercie.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] Error near "," : Syntax error

#12

Message par jchd »

Il faut "échapper" toute apostrophe (simple quote) dans toute variable chaîne, en les doublant.

Code : Tout sélectionner

If Not _SQLite_Exec ( _
						$bdd, _
						"INSERT INTO Main VALUES (" & _
							$a[1] & "," & _
							$a[2] & "," & _
							"'" & StringReplace($a[3], "'", "''") & "'," & _
							$a[4] & "," & _
							$a[5] & "," & _
							$a[6] & "," & _
							$a[7] & "," & _
							$a[8] & "," & _
							"'" & StringReplace($a[9], "'", "''") & "'," & _
							$a[10] & "," & _
							$a[11] & "," & _
							$a[12] & "," & _
							$a[13] & "," & _
							$a[14] & "," & _
							$a[15] & ");"
					) = $SQLITE_OK _
Then MsgBox(16, "SQLite Error", _SQLite_ErrMsg ())
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [R] Error near "," : Syntax error

#13

Message par GMH »

Oui les quotes peuvent en effet poser des problèmes si la valeur entrée contient des apostrophes.

Est-ce que la fonction _SQLite_FastEscape($a[3]) a cette utilité ?
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] Error near "," : Syntax error

#14

Message par jchd »

C'est très exactement ce que fait cette fonction.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Répondre