Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/03/2007, 15h55   #1
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 218
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 218
Points : 39
Points : 39
Par défaut [Débutant] Insert sql

C'est un simple formulaire avec un login et un password. Lorsque j'insère des
valeurs dans ces 2 champs, ils seront insérés dans une table access Users.

Erreur :
Code :
1
2
3
4
 
 Microsoft JET Database Engine (0x80040E14)
 Syntax error in INSERT INTO statement.
 /cre/verif.asp, line 12



Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@LANGUAGE="VBSCRIPT"%>
<%
vlogin=Request.Form("login")
vpassword=Request.Form("password")
filePath=Server.MapPath("BDUsers.mdb")
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&filePath

sql="INSERT INTO Users(nom,password) VALUES ('"&vlogin&"','"&vpassword&"')"

Set obj_RecordSet=Server.CreateObject("ADODB.Recordset")
Set obj_RecordSet=Connection.Execute(sql)



Connection.close
Set Connection=nothing
%>
Identifiant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 16h28   #2
Inactif
 
Inscription : mars 2002
Messages : 1 295
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2002
Messages : 1 295
Points : 1 345
Points : 1 345
Fais un response.write de ta chaine "sql", qu'on voie d'où vient l'erreur.
Florian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 19h35   #3
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 218
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 218
Points : 39
Points : 39
La requête sql marche bien. L'erreur provient donc du reste du code :

Code :
1
2
3
4
5
6
7
 
Set obj_Recordset=Server.CreateObject("ADODB.Recordset")
Set obj_Recordset=Connection.Execute(sql)
 
Connection.close
Set Connection=nothing
%>
Identifiant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 19h46   #4
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 246
Points : 1 203
Points : 1 203
Envoyer un message via MSN à kaiser59
Salut,

A tout hasard se serait pas plutot ton
Code :
<%@LANGUAGE="VBSCRIPT"%>
qui le fait planter perso je ne met jamais et j'ai pas de problème de syntaxe.

++
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 20h25   #5
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 218
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 218
Points : 39
Points : 39
Je peux ne pas l'écrire (language="vsbcript" ...).
Y a-t-il un autre code qui me permet d'exécuter l'insertion ?
Identifiant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 22h19   #6
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 246
Points : 1 203
Points : 1 203
Envoyer un message via MSN à kaiser59
Salut,

Tu enlève tout simplement la ligne
Code :
<%@LANGUAGE="VBSCRIPT"%>
de ta page, et tu laisses le reste. Essaye ça


++
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2007, 09h22   #7
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 218
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 218
Points : 39
Points : 39
Même erreur : Syntax error in INSERT INTO statement.
Identifiant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2007, 09h35   #8
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
Pour la chaine de connexion, j'utilise plutôt
Code :
1
2
3
strProvider = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=<CHEMIN VERS LA BASE>;"
set objConn = server.createobject("ADODB.Connection")
objConn.Open strProvider
Citation:
Envoyé par kaiser59
Salut,

Tu enlève tout simplement la ligne
Code :
<%@LANGUAGE="VBSCRIPT"%>
de ta page, et tu laisses le reste. Essaye ça

++
Kaiser > Tu parviens à executer tes pages ASP sans ajouter cet en-tête??

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2007, 10h25   #9
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 246
Points : 1 203
Points : 1 203
Envoyer un message via MSN à kaiser59
Salut,

Oui Immobilis, aucune de mes pages n'a cet en-tête, et sa fonctionne sans problème

Pour preuve va sur mon site tu verras que tout s'affiche très bien (je sais on utilise pas les frames mais je suis entrain de le refaire et pas de problème non plus pour le nouveau que je suis en train de refaire)

Essaye ce que Immobilis ta dit, et petite suggestions as-tu d'autre requete qui s'exécute genre Insert, Select ??

++
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2007, 13h23   #10
Membre habitué
 
Avatar de sab_etudianteBTS
 
Inscription : juin 2006
Messages : 211
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 211
Points : 134
Points : 134
Salut,
Je ne sais pas si le pb est résolu, mais au lieu de ca :
Citation:
Set obj_RecordSet=Connection.Execute(sql)
essaie plutot ca :
Code :
obj_RecordSet.Open sql, Connection
A+
__________________
Je vaux 5 677 200 € sur HumainAVendre.com, et vous ? http://www.humainavendre.com

Sab
sab_etudianteBTS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2007, 16h58   #11
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 218
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 218
Points : 39
Points : 39
ça ne marche jamais
Identifiant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2007, 17h13   #12
Inactif
 
Inscription : mars 2002
Messages : 1 295
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2002
Messages : 1 295
Points : 1 345
Points : 1 345
Désolé du réveil tardif, j'aurais du voir l'erreur tout de suite. Ceci suffira largement :

Code :
1
2
3
sql="INSERT INTO Users(nom,password) VALUES ('"&vlogin&"','"&vpassword&"')"
 
Connection.Execute(sql)
Tu éxécute une commande, tu ne crée pas un recordset.
Florian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2007, 17h56   #13
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 218
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 218
Points : 39
Points : 39
J'ai modifié mon code en éliminant l'objet Recordset. ça ne marche pas


Code :
1
2
3
4
5
6
7
8
9
10
11
<%@LANGUAGE="VBSCRIPT"%>
<%
vlogin=Request.Form("login")
vpassword=Request.Form("password")
filePath=Server.MapPath("BDUsers.mdb")
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&filePath
sql="INSERT INTO Users(nom,password) VALUES('" & vlogin & "','" & vpassword & "')"
Set obj_RecordSet=Server.CreateObject("ADODB.Recordset")
Connection.Execute(sql)
%>
L'erreur donné est:

Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error in INSERT INTO statement.
/insert_into_database/verif.asp, line 10
Identifiant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2007, 18h05   #14
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
Et avec la connexion que je t'ai donné?
Response.write(SQL) donne quoi?
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2007, 18h20   #15
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 218
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 218
Points : 39
Points : 39
Code :
1
2
3
4
...
sql="INSERT INTO Users(nom,password) VALUES('" & vlogin & "','" & vpassword & "')"
Response.Write(sql)
%>
avec Response.Write, la page asp est accessible et elle affiche :
INSERT INTO Users(nom,password) VALUES('Identifiant','whatever')

donc ça marche
Identifiant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2007, 18h41   #16
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
Et tu as vraiment changé la chaine de connexion comme je te l'ai indique?
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2007, 19h28   #17
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 246
Points : 1 203
Points : 1 203
Envoyer un message via MSN à kaiser59
Salut,

Est ce qu'il existe déjà dans ta base le login 'Identifiant' avec pour mot de passe 'whatever' ??

Si oui, utlise un autre login et mot de passe

On sait jamais

++
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2007, 20h07   #18
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 218
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 218
Points : 39
Points : 39
Et finalement mon problème est résolu. Je vous remercie beaucoup pour votre
temps. Merci tout le monde.


C'est le code correct pour insérer des informations dans une table Access :

Code :
1
2
3
4
5
6
7
8
9
10
<%@LANGUAGE="VBSCRIPT"%>
<%
vlogin=Request.Form("login")
vpassword=Request.Form("password")
strProvider = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\Inetpub\wwwroot\insert_into_database\BDUsers.mdb;"
set objConn = server.createobject("ADODB.Connection")
objConn.Open strProvider
sql="INSERT INTO Users(login,password) VALUES('" & vlogin & "','" & vpassword & "')"
objConn.Execute(sql)
%>
Identifiant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 15h08   #19
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 246
Points : 1 203
Points : 1 203
Envoyer un message via MSN à kaiser59
Salut,

Ton code était donc déjà bon au départ, tu avais mis ça :
Code :
1
2
3
4
 
<%
filePath=Server.MapPath("BDUsers.mdb")
%>
vue que ta BD n'était pas dans le même répertoire que tes pages asp, il te suffisait de faire :
Code :
1
2
3
<%
filePath=Server.MapPath("insert_into_database\BDUsers.mdb")
%>
Et en principe sa devrait fonctionner

++
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h01.


 
 
 
 
Partenaires

Hébergement Web