Toon posts:

[asp][access] Syntaxis fout in INSERT INTO

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een script om admins toe te voegen aan de database, zodat deze later dingen in de pagina kunnen aanpassen. Nou werkt het loginsysteem e.d. al. Het enige wat ik niet aan de praat kan krijgen is het toevoegen van een Admin. Ik heb hiervoor het volgende script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<%
IF Session("IsAdmin") < 3 THEN
response.redirect ("index.asp")
END IF
%>
<html>
<head>
<style type='text/css'>
table {font-family: Arial, Arial; font-size: 12px;}
BODY { scrollbar-face-color: #7BC6F2; 
scrollbar-shadow-color: #D0EBFB; 
scrollbar-highlight-color: #D0EBFB; 
scrollbar-3dlight-color: #477dcf; 
scrollbar-darkshadow-color: #FFFFFF; 
scrollbar-track-color: #D0EBFB; 
scrollbar-arrow-color: #D0EBFB; 
background: #148AD1;}
td.tablec1 {font-family: Arial, Arial; 
font-size: 28px; 
color: #FEDE01;}
</style>
</head>
<body>
<%
IF Request.Form("knop") = "" THEN
%>
<div align=center>
<form method=post>
<table border=0 color="#D0EBFB" cellpadding=0 cellspacing=0 width=25%>
<tr><td valign='top' colspan=2 align=center><b>Toevoegen Admin</b></td></tr>
<%
IF Request.QueryString("error")<> "" THEN
%>
<tr><td valign='top' colspan=2 align=center><b><%=Request.QueryString("error")%></b></td></tr>
<%
END IF
%>
<tr><td valign='top'><b>Volledig naam: </b></td><td valign='top'>
<input type='text' name='naam' style="border: 3px solid #1181C4;"></td></tr>
<tr><td valign='top'><b>E-mail: </b></td><td valign='top'>
<input type='text' name='mail' style="border: 3px solid #1181C4;"></td></tr>
<tr><td valign='top'><b>Gebruikersnaam: </b></td><td valign='top'>
<input type='text' name='gebruikersnaam' style="border: 3px solid #1181C4;"></td></tr>
<tr><td valign='top'><b>Wachtwoord: </b></td><td valign='top'>
<input type='password' name='wachtwoord' style="border: 3px solid #1181C4;"></td></tr>
<tr><td valign='top'><b>Acces level: </b></td><td valign='top'>
<select name='level' style="border: 3px solid #1181C4;">
<option value='1'>level 1</option><option value='2'>level 2</option>
<option value='3'>level 3</option></select>
<tr><td valign='top' colspan=2>
<input type='submit' name='knop' value='Creeër Admin' 
style="width:100%; border: 3px solid #D0EBFB; background: #1181C4; 
font-family: Arial, Arial; font-size: 14px; color: #FFFFFF;"></td></tr>
</table>
</form>
</div>
</body>
</html>
<%
ELSE
strUser = Request.Form("gebruikersnaam")
strPassword = Request.Form("wachtwoord")
intLevel = int(Request.Form("level"))
strMail = Request.Form("mail")
strNaam = Request.Form("naam")
IF strUser = "" or strPassword = "" or intLevel = "" or strMail = "" or strNaam = "" THEN
response.redirect("addadmin.asp?error='Er ontbreken gegevens, probeer het nog een keer'")
END IF
set DataBaseCon = Server.Createobject("ADODB.Connection")
   DataSource = "DRIVER={Microsoft Access Driver (*.mdb)}; "
   DataSource = DataSource & "DBQ=d:\inetpub\wwwroot\cgi-bin\database2.mdb;"
   DataBaseCon.Open DataSource
   SQLstring = "INSERT INTO Admin (Wachtwoord,Username,Mail,Level,Naam)"
SQLstring = SQLstring & " VALUES (" 
SQLstring = SQLstring & "'" & strPassword & "',"
SQLstring = SQLstring & "'" & strUser & "',"
SQLstring = SQLstring & "'" & strMail & "',"
SQLstring = SQLstring & "'" & intLevel & "',"
SQLstring = SQLstring & "'" & strNaam & "'"
SQLstring = SQLstring & ")"
DataBaseCon.Execute(SQLstring)
DataBaseCon.close
set DataBaseCon = nothing
%>
<table border=0 color="#D0EBFB" cellpadding=0 cellspacing=0 width=25%>
<tr><td valign='top' colspan=2 align=center><b>Admin gecreeërt</b></td></tr>
</table>
</body>
</html>
<%
END IF
%>

Ik krijg de volgende fout als ik hem uitvoer:
code:
1
2
3
4
5
Microsoft OLE DB Provider for ODBC Drivers fout '80040e14' 

[Microsoft][ODBC Microsoft Access-stuurprogramma] De instructie INSERT bevat een syntaxisfout. 

/addadmin.asp, regel 62

De fout zou dus hier moeten zitten:
code:
1
2
3
4
5
6
7
8
9
   SQLstring = "INSERT INTO Admin (Wachtwoord,Username,Mail,Level,Naam)"
SQLstring = SQLstring & " VALUES (" 
SQLstring = SQLstring & "'" & strPassword & "',"
SQLstring = SQLstring & "'" & strUser & "',"
SQLstring = SQLstring & "'" & strMail & "',"
SQLstring = SQLstring & "'" & intLevel & "',"
SQLstring = SQLstring & "'" & strNaam & "'"
SQLstring = SQLstring & ")"
DataBaseCon.Execute(SQLstring)

Ik kan alleen niet de fout vinden in in de SQLstring. De velden komen precies overeen met de database. Kan iemand de fout vinden?

Ik ben ten einde raad...

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

Volgens mij moeten er geen single-quotes staan om values van het type integer.
code:
1
2
3
4
5
6
7
8
9
SQLstring = "INSERT INTO Admin (Wachtwoord,Username,Mail,Level,Naam)"
SQLstring = SQLstring & " VALUES (" 
SQLstring = SQLstring & "'" & strPassword & "',"
SQLstring = SQLstring & "'" & strUser & "',"
SQLstring = SQLstring & "'" & strMail & "',"
SQLstring = SQLstring & intLevel & "," '** Let op deze regel **
SQLstring = SQLstring & "'" & strNaam & "'"
SQLstring = SQLstring & ")"
DataBaseCon.Execute(SQLstring)

Probeer dit eens

Verwijderd

Topicstarter
ik heb het geprobeerd, maar helaas maakt het niks uit...

  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

ik denk dat "level" een gereserveerd woord is...

linkje

kaart != map && bottel != fles
Wacht op antwoord


Verwijderd

Topicstarter
j_du_pee , harstikke bedankt. Wat jij zei, bleek de fout te zijn. Probleem opgelost! :)