05. april 2004 - 19:09
Der er
20 kommentarer og 1 løsning
Hjælp til INSERT INTO Sætning
Hejsa, Jeg har lavet en adduser.asp, men jeg får følgende fejlmeddelse..Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT INTO-sætningen. /workspace/log/adduser.asp, line 37 Hvad kan fejlen være...?` <!-- #include file="conn.asp" --> <link rel="stylesheet" type="text/css" href="style.css"> <% strCmd = Request.QueryString("cmd") openConn() If strCmd = "addnew" Then strUserid = Request.Form("userid") strUsername = replace(Request.Form("username")&"","'","''") strPassword = replace(Request.Form("password")&"","'","''") strRedirect = replace(Request.Form("redirect")&"","'","''") strLastlogin = Request.Form("lastlogin") strLogintimes = replace(Request.Form("logintimes")&"","'","''") strGroup = replace(Request.Form("group")&"","'","''") strSQL = "INSERT INTO Users (" strSQL = strSQL & "Username, " strSQL = strSQL & "Password, " strSQL = strSQL & "Redirect, " strSQL = strSQL & "Lastlogin, " strSQL = strSQL & "Logintimes, " strSQL = strSQL & "Group) " strSQL = strSQL & "values (" strSQL = strSQL & "'" & strUsername & "', " strSQL = strSQL & "'" & strPassword & "', " strSQL = strSQL & "'" & strRedirect & "', " strSQL = strSQL & "'" & Now & "', " strSQL = strSQL & "'" & 0 & "', " strSQL = strSQL & "'" & strGroup & "')" connection.Execute(strSQL) %> <h2>Brugeren er nu oprettet!</h2><br> <a href="overview.asp">Tilbage til oversigten</a> <% Else %> <form method="post" action="adduser.asp?cmd=addnew"> <table> <tr> <td>Brugernavn:<br><input type="text" name="username" class="input"><br><br></td> </tr> <tr> <td>Adgangskode:<br><input type="text" name="password" class="input"><br><br></td> </tr> <tr> <td>Videresend:<br><input type="text" name="redirect" class="input"><br><br></td> </tr> <tr> <td>Gruppe:<br><input type="text" name="group" class="input"><br><br></td> </tr> <tr> <td><input type="submit" value="Opret" class="knap"></td> </tr> </table><br> <a href="overview.asp">Tilbage til oversigten</a> </form> <% End if closeConn() %>
Annonceindlæg fra Computerworld
05. april 2004 - 19:14
#1
strSQL = "INSERT INTO Users (" strSQL = strSQL & "Username, " strSQL = strSQL & "Password, " strSQL = strSQL & "Redirect, " strSQL = strSQL & "Lastlogin, " strSQL = strSQL & "Logintimes, " strSQL = strSQL & "[Group]) " strSQL = strSQL & "values (" strSQL = strSQL & "'" & strUsername & "', " strSQL = strSQL & "'" & strPassword & "', " strSQL = strSQL & "'" & strRedirect & "', " strSQL = strSQL & "'" & Now & "', " strSQL = strSQL & "'" & 0 & "', " strSQL = strSQL & "'" & strGroup & "')" connection.Execute(strSQL) Group er et reseveret ord i SQL! //>Rune
05. april 2004 - 19:16
#2
Så kommer der følgede fejlmeddelse..: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] INSERT INTO-sætningen indeholder det ukendte feltnavn "Group". Kontroller, at du har skrevet navnet korrekt, og forsøg derefter at udføre handlingen igen. /workspace/log/adduser.asp, line 36
05. april 2004 - 19:19
#3
Prøv at lad mig se hele din kode nu... //>Rune
05. april 2004 - 19:19
#4
<!-- #include file="conn.asp" --> <link rel="stylesheet" type="text/css" href="style.css"> <% strCmd = Request.QueryString("cmd") openConn() If strCmd = "addnew" Then strUserid = Request.Form("userid") strUsername = replace(Request.Form("username")&"","'","''") strPassword = replace(Request.Form("password")&"","'","''") strRedirect = replace(Request.Form("redirect")&"","'","''") strLastlogin = Request.Form("lastlogin") strLogintimes = replace(Request.Form("logintimes")&"","'","''") strGroup = replace(Request.Form("group")&"","'","''") strSQL = "INSERT INTO Users (" strSQL = strSQL & "Username, " strSQL = strSQL & "Password, " strSQL = strSQL & "Redirect, " strSQL = strSQL & "Lastlogin, " strSQL = strSQL & "Logintimes, " strSQL = strSQL & "[Group]) " strSQL = strSQL & "values (" strSQL = strSQL & "'" & strUsername & "', " strSQL = strSQL & "'" & strPassword & "', " strSQL = strSQL & "'" & strRedirect & "', " strSQL = strSQL & "'" & Now & "', " strSQL = strSQL & "'" & 0 & "', " strSQL = strSQL & "'" & strGroup & "')" connection.Execute(strSQL) %> <h2>Brugeren er nu oprettet!</h2><br> <a href="overview.asp">Tilbage til oversigten</a> <% Else %> <form method="post" action="adduser.asp?cmd=addnew"> <table> <tr> <td>Brugernavn:<br><input type="text" name="username" class="input"><br><br></td> </tr> <tr> <td>Adgangskode:<br><input type="text" name="password" class="input"><br><br></td> </tr> <tr> <td>Videresend:<br><input type="text" name="redirect" class="input"><br><br></td> </tr> <tr> <td>Gruppe:<br><input type="text" name="group" class="input"><br><br></td> </tr> <tr> <td><input type="submit" value="Opret" class="knap"></td> </tr> </table><br> <a href="overview.asp">Tilbage til oversigten</a> </form> <% End if closeConn() %>
05. april 2004 - 19:22
#5
Er du sikker på at du har et felt i din database der hedder Group? Evt. prøv sådan er: strSQL = "INSERT INTO Users (" strSQL = strSQL & "[Username], " strSQL = strSQL & "[Password], " strSQL = strSQL & "[Redirect], " strSQL = strSQL & "Lastlogin, " strSQL = strSQL & "Logintimes, " strSQL = strSQL & "[Group]) " strSQL = strSQL & "values (" strSQL = strSQL & "'" & strUsername & "', " strSQL = strSQL & "'" & strPassword & "', " strSQL = strSQL & "'" & strRedirect & "', " strSQL = strSQL & "'" & Now & "', " strSQL = strSQL & "'" & 0 & "', " strSQL = strSQL & "'" & strGroup & "')" connection.Execute(strSQL) //>Rune
05. april 2004 - 19:29
#6
Mange tak :)
05. april 2004 - 19:30
#7
Anytime ;) Thx 4 Poinz //>Rune
05. april 2004 - 19:44
#8
Gider du hjælpe med en anden sætning mere...?
05. april 2004 - 19:46
#9
Så lad gå da :) //>Rune
05. april 2004 - 19:46
#10
Har en edituser.asp som jeg tror har samme problem med group... <!-- #include file="conn.asp" --> <link rel="stylesheet" type="text/css" href="style.css"> <% strCmd = Request.QueryString("cmd") openConn() If strCmd = "update" Then strUserid = Request.Form("userid") strUsername = replace(Request.Form("username")&"","'","''") strPassword = replace(Request.Form("password")&"","'","''") strRedirect = replace(Request.Form("redirect")&"","'","''") strGroup = replace(Request.Form("group")&"","'","''") strSQL = "UPDATE Users SET Username='" & strUsername & "',Password='" & strPassword & "',Redirect='" & strRedirect & "',Group='" & strGroup & "' WHERE UserId=" & strId connection.Execute(strSQL) %> <h2>Brugeren er nu rettet!</h2><br> <a href="overview.asp">Tilbage til oversigten</a> <% Else strId = Request.QueryString("id") strSQL = "SELECT username,password,redirect,group FROM Users WHERE UserId=" & strId Set rs = connection.Execute(strSQL) If Not (rs.EOF Or rs.BOF) Then %> <form method="post" action="edituser.asp?cmd=update"> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td>Brugernavn:<br><input type="text" name="username" value="<%=rs("username")%>" class="input"><br><br></td> </tr> <tr> <td>Adgangskode:<br><input type="text" name="password" value="<%=rs("password")%>" class="input"><br><br></td> </tr> <tr> <td>Redirect:<br><input type="text" name="redirect" value="<%=rs("redirect")%>" class="input"><br><br></td> </tr> <tr> <td>Gruppen:<br><input type="text" name="group" value="<%=rs("group")%>" class="input"><br><br></td> </tr> <tr> <td><input type="submit" value="Ret brugeren" class="knap"></td> </tr> </table><br><br> <a href="java script:this.history.go(-1);">Tilbage</a> </form> <% Else %> Fejl, brugeren eksisterer ikke<br><br> <a href="java script:this.history.go(-1);">Tilbage</a> <% End If End If closeConn() %>
05. april 2004 - 19:46
#11
Fejlen: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i UPDATE-sætningen. /workspace/log/edituser.asp, line 18
05. april 2004 - 19:49
#12
jamen kære ven, det er jo det samme! -Group er et reseveret ord i Access / SQL, og det kan derfor 'ikke' bruges som et kolonnenavn. For at undgå dette skriver man [ og ] udenom så det bliver tolket som en kolonne. strSQL = "UPDATE Users SET [Username]='" & strUsername & "',[Password]='" & strPassword & "',Redirect='" & strRedirect & "',[Group]='" & strGroup & "' WHERE UserId=" & strId connection.Execute(strSQL) //>Rune
05. april 2004 - 19:51
#13
:) Men nu siger den: Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "UserId=". /workspace/log/edituser.asp, line 18
05. april 2004 - 19:55
#14
Det er fordi den ikke får nogen ID! strId er altså tom, eller er feltet UserId et tekstfelt, Eller prøver du at parse noget tekst ned i UserId som er et Integerfelt. //>Rune
05. april 2004 - 19:55
#15
UserID er et autonummerering... Meningen er jo at den skal hente indholdet ud efter det ID :)
05. april 2004 - 19:58
#16
Prøv evt. at gør sådan her: strSQL = "UPDATE Users SET Username='" & strUsername & "',Password='" & strPassword & "',Redirect='" & strRedirect & "',Group='" & strGroup & "' WHERE UserId=" & strId 'connection.Execute(strSQL) Response.Write(strSQL) For at debugge, så kan du se hvad for noget data der bliver parset ned i din SQL sætning! -du kan oxo prøve at konvetere strId om til en Integer CInt(strId) //>Rune
05. april 2004 - 19:59
#17
Det er fordi den ikke finder UserID ??
05. april 2004 - 20:00
#18
UPDATE Users SET Username='Patrick',Password='Nielsens',Redirect='test.asp',Group='1' WHERE UserId=
05. april 2004 - 20:01
#19
<!-- #include file="conn.asp" --> <link rel="stylesheet" type="text/css" href="style.css"> <% strCmd = Request.QueryString("cmd") openConn() If strCmd = "update" Then strUserid = Request.Form("userid") strUsername = replace(Request.Form("username")&"","'","''") strPassword = replace(Request.Form("password")&"","'","''") strRedirect = replace(Request.Form("redirect")&"","'","''") strGroup = replace(Request.Form("group")&"","'","''") strSQL = "UPDATE Users SET Username='" & strUsername & "',Password='" & strPassword & "',Redirect='" & strRedirect & "',Group='" & strGroup & "' WHERE UserId=" & strUserid 'connection.Execute(strSQL) Response.Write(strSQL) %> <h2>Brugeren er nu rettet!</h2><br> <a href="overview.asp">Tilbage til oversigten</a> <% Else strId = Request.QueryString("id") strSQL = "SELECT username,password,redirect,group FROM Users WHERE UserId=" & strId Set rs = connection.Execute(strSQL) If Not (rs.EOF Or rs.BOF) Then %> <form method="post" action="edituser.asp?cmd=update"> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td>Brugernavn:<br><input type="text" name="username" value="<%=rs("username")%>" class="input"><br><br></td> </tr> <tr> <td>Adgangskode:<br><input type="text" name="password" value="<%=rs("password")%>" class="input"><br><br></td> </tr> <tr> <td>Redirect:<br><input type="text" name="redirect" value="<%=rs("redirect")%>" class="input"><br><br></td> </tr> <tr> <td>Gruppen:<br><input type="text" name="group" value="<%=rs("group")%>" class="input"><br><br></td> </tr> <tr> <td><input type="submit" value="Ret brugeren" class="knap"></td> </tr> </table><br><br> <a href="java script:this.history.go(-1);">Tilbage</a> </form> <% Else %> Fejl, brugeren eksisterer ikke<br><br> <a href="java script:this.history.go(-1);">Tilbage</a> <% End If End If closeConn() %>
05. april 2004 - 20:03
#20
ja, der kan du jo se, den får ikke noget ID med...! UPDATE Users SET Username='Patrick',Password='Nielsens',Redirect='test.asp',Group='1' WHERE UserId= Prøv fx. bare sådan her: UPDATE Users SET [Username]='Patrick', [Password]='Nielsens',Redirect='test.asp',[Group]='1' WHERE UserId=1 så skulle det gerne virke. //>Rune
05. april 2004 - 20:05
#21
Ja.. men problemet er : Jeg har en overview.asp som lister alle de poster der er i databasen, så ud fra hver post, er der en rediger, som linker til <a href="edituser.asp?id=<%=rs("UserId")%>">Rediger</a> I min edituser.asp skal den så hente posten ud med det UserId som der er... Det gør den også, men når jeg prøver at opdatere det nye jeg har skrevet, så laver den fejlen... :)
Kurser inden for grundlæggende programmering