31. marts 2004 - 12:27
Der er
16 kommentarer og 4 løsninger
Asp fejl ved insert til access database
JEg bliver ved med at få denne her fejl Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement. /guestbook/guestbook.asp, line 24 Min kode: <% If session("id") = "" Then Response.Redirect("main.asp") End IF If request("mode") = "write" Then Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db/guestbook.mdb") Conn.Open DSN strSQL = "Insert into Guest (" strSQL = strSQL & "Userid, " strSQL = strSQL & "Writeid, " strSQL = strSQL & "Text) " strSQL = strSQL & "values( " strSQL = strSQL & request("id") & ", " strSQL = strSQL & session("id") & ", " strSQL = strSQL & "'" & request.form("Text") & "')" Conn.Execute(strSQL) Conn.Close Set Conn = Nothing Response.Redirect("guestbook.asp?id=" & request("id")) End If
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
31. marts 2004 - 12:31
#1
Det er nok fordi der ikke står noget i request("id") eller session("id")
31. marts 2004 - 12:32
#2
prøv evt. at lave en response.write(strSQL) før Conn.Execute(strSQL) så kan du se hvad der sker...
31. marts 2004 - 12:34
#3
resultat: Insert into Guest (Userid, Writeid, Text) values( 1, 1, 'Hej')
31. marts 2004 - 12:40
#4
<% If session("id") = "" Then Response.Redirect("main.asp") End IF If request("mode") = "write" Then Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db/guestbook.mdb") Conn.Open DSN strSQL = "Insert into Guest (" strSQL = strSQL & "Userid, " strSQL = strSQL & "Writeid, " strSQL = strSQL & "[Text]) " strSQL = strSQL & "values( " strSQL = strSQL & request("id") & ", " strSQL = strSQL & session("id") & ", " strSQL = strSQL & "'" & request.form("Text") & "')" Conn.Execute(strSQL) Conn.Close Set Conn = Nothing Response.Redirect("guestbook.asp?id=" & request("id")) End If Text er et reserveret ord! //>Rune
31. marts 2004 - 12:42
#5
Der skal være mellemrum mellem VALUES og (
31. marts 2004 - 13:02
#6
Tak medions.. MEn nu for jeg en anden fejl.. ADODB.Recordset error '800a0cc1' Item cannot be found in the collection corresponding to the requested name or ordinal. /guestbook/guestbook.asp, line 78 <% If session("id") = "" Then Response.Redirect("main.asp") End IF If request("mode") = "write" Then Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db/guestbook.mdb") Conn.Open DSN strSQL = "Insert into Guest (" strSQL = strSQL & "Userid, " strSQL = strSQL & "Writeid, " strSQL = strSQL & "[Text]) " strSQL = strSQL & "values(" strSQL = strSQL & request("id") & ", " strSQL = strSQL & session("id") & ", " strSQL = strSQL & "'" & request.form("Text") & "')" response.write(strSQL) Conn.Execute(strSQL) Conn.Close Set Conn = Nothing Response.Redirect("guestbook.asp?id=" & request("id")) Else %><!--#include file="function.asp"--><html> <head> <meta http-equiv="Content-Language" content="da"> <link rel="STYLESHEET" type="text/css" href="css.css"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>FunStuff.dk</title> </head> <body topmargin="2" leftmargin="3"> <center> <table border="0" cellpadding="0" cellspacing="0" width="570"> <tr> <td width="100%"><b><font face="Verdana" size="1"><a href="profil.asp?id=<%=request("id")%>" target="main"><%=Guestname(request("id"))%></a> | <a href="guestbook.asp?id=<%=request("id")%>" target="main">Gæstebog (0)</a> | Fotos (0) | Venner (0) | Dagbog | Vennebog</font></b></td> </tr> </table> <br> <center> <form method="POST" action="guestbook.asp?mode=write&id=<%=request("id")%>"> <table border="0" cellpadding="0" cellspacing="0" width="529"> <tr> <td width="250"><textarea rows="4" name="Text" cols="39"></textarea></td> <td width="279"><input type="submit" value="Skriv i gæstebogen" name="submit"></td> </tr> </table> </form> </center> <br> <table border="0" cellpadding="0" cellspacing="0" width="500"> <% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db/guestbook.mdb") Conn.Open DSN strSQL = "Select * From Guest Where Userid = " & request("id") & " Order by Id Desc" Set rs = Conn.Execute(strSQL) If rs.EOF Then %><tr><td valign="top"><font face="Verdana" size="1">Der er ingen der har skrevet i gæstebogen endnu</font></td></tr><% Else Do %><tr> <td width="143" valign="top"><font face="Verdana" size="1"> <font color="#5A5B5C"></font><b><%=Guestname(rs("Writeid"))%> </b><font color="#5A5B5C"><%=Guestuse(rs("Writeid"))%></font><b><br> </b><font color="#5A5B5C"><%=rs("Dato")%></font><br> <br><center> <font color="#5A5B5C">Slet | Gæstebog | Svar<br> Blocker | Privat/Offelig </font> </font></td> <td width="357" valign="top"><font face="Verdana" size="1"><%=rs("Text")%></font></td> </tr> <% rs.MoveNext Loop While Not rs.EOF End IF Conn.Close Set Conn = Nothing %></table> </body> </html><% End If%>
31. marts 2004 - 13:08
#7
Hvad for en linje er linje 78? //>Rune
31. marts 2004 - 13:10
#8
Ahh ok... Du kan se her: <%=Guestuse(rs("Writeid"))%> der har du kaldt dit recordset for Guestuse, og her: Set rs = Conn.Execute(strSQL) har du defineret det til at være rs. så ret Guestuse til rs alle de steder hvor du henter fra databasen, så skulle det gerne virke! :) //>Rune
31. marts 2004 - 13:13
#9
Function Guestuse(Userid) Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db/users.mdb") Conn.Open DSN strSQL = "Select * from Users where id = " & Userid Set rs = Conn.Execute(strSQL) If rs.EOF Then Guestuse = "P99" Else Guestuse = rs("Kon") & rs("Alder") End If Conn.Close Set Conn = Nothing End Function
31. marts 2004 - 13:14
#10
Ok, så spørger jeg igen, hvilken _ linje _ er _ linje _ 78 ??? //>Rune
31. marts 2004 - 13:17
#11
<td width="143" valign="top"><font face="Verdana" size="1"> <font color="#5A5B5C"></font><b><%=Guestname(rs("Writeid"))%> </b><font color="#5A5B5C"><%=Guestuse(rs("Writeid"))%></font><b><br> <<<<<--- Den der
31. marts 2004 - 13:20
#12
Prøv lige sådan: <% If session("id") = "" Then Response.Redirect("main.asp") End IF If request("mode") = "write" Then Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db/guestbook.mdb") Conn.Open DSN strSQL = "Insert into Guest (" strSQL = strSQL & "Userid, " strSQL = strSQL & "Writeid, " strSQL = strSQL & "[Text]) " strSQL = strSQL & "values(" strSQL = strSQL & request("id") & ", " strSQL = strSQL & session("id") & ", " strSQL = strSQL & "'" & request.form("Text") & "')" response.write(strSQL) Conn.Execute(strSQL) Conn.Close Set Conn = Nothing Response.Redirect("guestbook.asp?id=" & request("id")) Else %><!--#include file="function.asp"--><html> <head> <meta http-equiv="Content-Language" content="da"> <link rel="STYLESHEET" type="text/css" href="css.css"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>FunStuff.dk</title> </head> <body topmargin="2" leftmargin="3"> <center> <table border="0" cellpadding="0" cellspacing="0" width="570"> <tr> <td width="100%"><b><font face="Verdana" size="1"><a href="profil.asp?id=<%=request("id")%>" target="main"><%=Guestname(request("id"))%></a> | <a href="guestbook.asp?id=<%=request("id")%>" target="main">Gæstebog (0)</a> | Fotos (0) | Venner (0) | Dagbog | Vennebog</font></b></td> </tr> </table> <br> <center> <form method="POST" action="guestbook.asp?mode=write&id=<%=request("id")%>"> <table border="0" cellpadding="0" cellspacing="0" width="529"> <tr> <td width="250"><textarea rows="4" name="Text" cols="39"></textarea></td> <td width="279"><input type="submit" value="Skriv i gæstebogen" name="submit"></td> </tr> </table> </form> </center> <br> <table border="0" cellpadding="0" cellspacing="0" width="500"> <% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db/guestbook.mdb") Conn.Open DSN strSQL = "Select * From Guest Where Userid = " & request("id") & " Order by Id Desc" Set rs = Conn.Execute(strSQL) strWriteID = rs("Writeid") If rs.EOF Then %><tr><td valign="top"><font face="Verdana" size="1">Der er ingen der har skrevet i gæstebogen endnu</font></td></tr><% Else Do %><tr> <td width="143" valign="top"><font face="Verdana" size="1"> <font color="#5A5B5C"></font><b><%=Guestname(strWriteID)%> </b><font color="#5A5B5C"><%=Guestuse(strWriteID)%></font><b><br> </b><font color="#5A5B5C"><%=rs("Dato")%></font><br> <br><center> <font color="#5A5B5C">Slet | Gæstebog | Svar<br> Blocker | Privat/Offelig </font> </font></td> <td width="357" valign="top"><font face="Verdana" size="1"><%=rs("Text")%></font></td> </tr> <% rs.MoveNext Loop While Not rs.EOF End IF Conn.Close Set Conn = Nothing %></table> </body> </html><% End If%> //>Rune
31. marts 2004 - 13:22
#13
Samme fejl... Jeg har en anden tanke.. Function Guestuse(Userid) Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db/users.mdb") Conn.Open DSN strSQL = "Select * from Users where id = " & Userid Set rs = Conn.Execute(strSQL) If rs.EOF Then Guestuse = "P99" Else Guestuse = rs("Kon") & rs("Alder") End If Conn.Close Set Conn = Nothing End Function Kon er text felt, og alder er number... Kan det være fejlen?
31. marts 2004 - 13:26
#14
Nej, det har ike ngoet med det at gøre... men er du sikker på dine felter er korrekt stavet? If rs.EOF Then Guestuse = "P99" Else Guestuse = CStr(rs("Kon")) & Str(rs("Alder")) End If //>Rune
31. marts 2004 - 13:29
#15
Ja.. Men det er somom, serveren har svært ved at hente visse records i databasen :S Microsoft VBScript runtime error '800a000d' Type mismatch: 'Str' /guestbook/function.asp, line 121 Den har også svært ved at hentet et felt der hedder Tekst i samme database.. Ingen problemer med at insert eller update.. Kun select... :S
31. marts 2004 - 13:40
#17
Jeg har løst dit første problem, og jeg syntes det her går for vidt for 30 points. //>Rune
31. marts 2004 - 13:49
#18
prøv lgie at zip dit projekt og send det til rune@medions.dk så kigger jeg lige på det! //>Rune
31. marts 2004 - 14:28
#19
Takker rune
31. marts 2004 - 14:30
#20
Thx 4 Poinz //>Rune
Kurser inden for grundlæggende programmering