Problème syntaxe SQL INSERT [Résolu]

Signaler
Messages postés
4
Date d'inscription
vendredi 8 juin 2012
Statut
Membre
Dernière intervention
13 juin 2012
-
Messages postés
4
Date d'inscription
vendredi 8 juin 2012
Statut
Membre
Dernière intervention
13 juin 2012
-
Bonjour à tous

Je vous remercie par avance de bien vouloir prendre quelques secondes pour un problème qui est peut être un problème de débutant mais qui me rend dingue !!!


environnement visual basic express 2010, access 2003


je fais une requête depuis vb.net vers access pour insérer une ligne dans une table, jusque là ok , il se trouve qu'à l’exécution , vb lève une exception "Erreur de syntaxe dans l'instruction INSERT INTO."

Alors qu'en mode requête sql directement dans access , la syntaxe est correcte et elle fonctionne !!!
Je ne comprends pas où est l'erreur

voici la requête

INSERT INTO Utilisateurs (Nom,Prenom,mail,login,password,enable)  
VALUES ('az','az','az','az','az','1');


Quelqu'un aurait une piste ?

12 réponses

Messages postés
4
Date d'inscription
vendredi 8 juin 2012
Statut
Membre
Dernière intervention
13 juin 2012

Bonsoir Messieurs

Après quelques heures de recherche j'ai fini par trouver la solution

La requête marche en mode sql d'access et pas en vb.net car il semble que le nom password soit réservé

j'ai changé le nom de la colonne de "password" en "pass"

Ce code est invalide

INSERT INTO Utilisateurs (Nom,Prenom,mail,login,password,enable)  
VALUES ('az','az','az','az','az','1');


Ce code est valide

INSERT INTO Utilisateurs (Nom,Prenom,mail,login,pass,enable)  
VALUES ('az','az','az','az','az','1');


Je ne sais pas si je dois être heureux d'avoir trouvé ou bien chialer !!!


Merci à tous ceux qui ont passés du temps sur ma recherche

bonne soirée
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Bonjour,

il manque des espaces après les virgules:

INSERT INTO Utilisateurs (Nom, Prenom, mail, login, password, enable)  
('az', 'az', 'az', 'az', 'az', '1');


De quel type est enable ?




[] Ce qui va sans dire. va mieux en le disant.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Bonjour,
C'est "fou" (sans vouloir insister sur cet adjectif), comme commencent à fleurir les sujets "qui rendent dinguent" , sans être précisés dans leur titre !
A quand l'ouverture d'une sous-section : "difficulté qui rend dingue", pendant qu'on y est ? .
Car gouverner, c'est prévoir, non ?
Je sors, mais j'insiste quand-même sur le caractère inadmissible de certains titres. Si vous me cherchez : je suis dans la pièce à côté (et j'y ronfle sans complexe).

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Les espaces après les virgules ne sont pas la sources du problème, ils ne sont pas obligatoire et le moteur SQL les ignorent quant ils y sont.

PAr contre le type de Enable peut-être intéressant. S'il s'agit d'un boolean, il ne faut pas mettre de ' pour la valeur.

Sinon le détail de l'erreur SQL pourrait grandement aider aussi


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
détail de l'erreur SQL :
"Erreur de syntaxe dans l'instruction INSERT INTO."

Ma questio sur le type était superflue !
L' erreur aurait été "type de donnée incompatible".

Si l' espace après la virgule est ignoré, celui après la parenthèse ouvrante et celui avant la parenthèse fermante devra compter, non ?

INSERT INTO Utilisateurs ( Nom, Prenom, mail, login, password, enable )  
( 'az', 'az', 'az', 'az', 'az', '1' );


[] Ce qui va sans dire. va mieux en le disant.
Messages postés
4
Date d'inscription
vendredi 8 juin 2012
Statut
Membre
Dernière intervention
13 juin 2012

vraiment désolé que le titre flou est pu gêner, j'ai écris ce post guidé par l'emotion
Mais je comprends bien que ce n'est pas une raison , heureusement un modo a corrigé .

Cependant ce problème me rend vraiment dingue, je n ai pas de piste !!!!

Pour la question enable est de type boolean

voila
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
[quote=LIBRE_MAX]détail de l'erreur SQL :
"Erreur de syntaxe dans l'instruction INSERT INTO."

Ma questio sur le type était superflue !
L' erreur aurait été "type de donnée incompatible"./quote
Non pas forcément. Le message d'erreur est renvoyé par le moteur SQL, par la base de données pour faire simple. Il renvoit "Erreur de syntaxe dans l'instruction INSERT INTO.", mais généralement le message est plus long que ça avec en complément des détails sur l'erreur.

[quote=LIBRE_MAX]Si l' espace après la virgule est ignoré, celui après la parenthèse ouvrante et celui avant la parenthèse fermante devra compter, non ? /quoteNormalement pas plus.

[quote=julieneni]Pour la question enable est de type boolean /quote
Donc, c'est bien ce que je disais, il ne faut pas mettre de ' autour du 1 dans les Values


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
T' avais raison casy.
Je viens de tester sans les espaces et ça fonctionne.
Et de surcroît avec:

"INSERT INTO Utilisateurs (Nom,Prenom,enable) " & _  
"SELECT 'az' AS Expr1,'az' AS Expr2,1 AS Expr3;"


j' ai pris l' habitude de travailler avec select , mais jamais avec Values.
C' est peut être pour ça que j' avais des doutes.



[] Ce qui va sans dire. va mieux en le disant.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
[quote=LIBRE_MAX]j' ai pris l' habitude de travailler avec select , mais jamais avec Values. /quoteOui, enfin avec des constantes (comme le cas présent, ou des données externes à la base de données, je vois pas trop l’intérêt.


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Pas forcémnt des constantes.Il peut s' agir de variables.
Pas forcémnt non plus des données externes à la base de données.
Il peut s' agir de champs d' une autre table.

"INSERT INTO Utilisateurs (Nom,Prenom,email) " & _  
"SELECT '" & x & "' AS Expr1, '" & y & "' AS Expr2, " & _
z & " AS Expr3;"


ou alors
"INSERT INTO Utilisateurs ( Nom, Prenom ) " & _  
"SELECT maTable.Nom, maTable.Prenom FROM maTable;"


Tu vois j' ai mis les espaces dans le 2° exemple.
Comme quoi les habitudes ont la vie dur !
Et on ne sait pas trop souvent d' ou elles nous viennent
ni pourquoi on y tient.



[] Ce qui va sans dire. va mieux en le disant.
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Et même si les variabls sont considérées comme externes à la base cela reviendrais à écrire:

INSERT INTO Utilisateurs (Nom, Prenom, enable)  " & _
"Values ('" & x & "','" & y & "', 1");


c' est pas très "réjouissant" non plus

[] Ce qui va sans dire. va mieux en le disant.
Messages postés
4
Date d'inscription
vendredi 8 juin 2012
Statut
Membre
Dernière intervention
13 juin 2012

Si jamais il est possible d'éditer le titre en mettant "résolu"

merci