Avatar billede 12tri Nybegynder
27. december 2001 - 11:15 Der er 3 kommentarer og
1 løsning

Indsæt data i database

Hej eksperter, jeg har et problem med at indsætte data i en access database. Under alle omstændigheder skal dataene indsættes i forumindlaeg. Men kun hvis feltet email er udfyldt i formem skal dataene indsættes i forummail. Indsættelsen i forumindlaeg virker fint, men når jeg forsøget at tilføje således at der også tilføjes noget til forummail får jeg følgende fejl:

Microsoft JET Database Engine fejl \'80040e14\'
Der er en syntaksfejl i INSERT INTO-sætningen.
/forum/response.asp, linje 42

Koden ser således ud:

<%
Response.Cookies(\"12tri\")(\"navn\") = request.form(\"navn\")
Response.Cookies(\"12tri\")(\"email\") = request.form(\"email\")
Response.Cookies(\"12tri\").Expires = Date+365
function strCorrect(strInput)
strCorrect = Replace(strInput, \"\'\", \"\'\'\")
end function
Set objConn = Server.CreateObject(\"ADODB.Connection\")
conStr = \"Provider=Microsoft.Jet.OLEDB.4.0;\"
%><!--#INCLUDE FILE=\"../include/db.inc\" --><%
objConn.Open conStr
strSQL = \"Insert into forumsvar (\"
strSQL = strSQL & \"navn, \"
strSQL = strSQL & \"mail, \"
strSQL = strSQL & \"indlaegid, \"
strSQL = strSQL & \"indhold, \"
strSQL = strSQL & \"dato) \"
strSQL = strSQL & \"values( \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"navn\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"email\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"indlaegid\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"besked\")) & \"\', \"
strSQL = strSQL & \"\'\" & now() & \"\')\"
objConn.Execute(strSQL)
objconn.close
set objconn = nothing

if Request.form(\"email\") <> \"\" then

Set objConn = Server.CreateObject(\"ADODB.Connection\")
conStr = \"Provider=Microsoft.Jet.OLEDB.4.0;\"
%><!--#INCLUDE FILE=\"../include/db.inc\" --><%
objConn.Open conStr
strSQL = \"Insert into forummail (\"
strSQL = strSQL & \"navn, \"
strSQL = strSQL & \"mail, \"
strSQL = strSQL & \"indlaegid, \"
strSQL = strSQL & \"values( \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"navn\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"email\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"indlaegid\")) & \"\', \"
objConn.Execute(strSQL)    --à HER ER LINIE 42 ß--
objconn.close
set objconn = nothing

end if
Response.Redirect \"show.asp?id=\" & Request.form(\"indlaegid\")
%>

Jeg er klar over at jeg kan undgå at åbne og lubbe forbindelsen til db’en, men jeg har gjort dette for at være sikker på at det ikke var her jeg lavede fejl.

Håber nogen kan hjælpe

Morten / morten@12tri.dk
Avatar billede 12tri Nybegynder
27. december 2001 - 11:16 #1
--à HER ER LINIE 42 ß-- = --> HER ER LINIE 42 <--, jeg skrev indlæget i word, og kopierede det over, men det virker åbenbart ikke helt
Avatar billede darkhero Nybegynder
27. december 2001 - 11:30 #2
Prøv dette... du havde glemt en ) i din SQL!

<%
Response.Cookies(\"12tri\")(\"navn\") = request.form(\"navn\")
Response.Cookies(\"12tri\")(\"email\") = request.form(\"email\")
Response.Cookies(\"12tri\").Expires = Date+365
function strCorrect(strInput)
strCorrect = Replace(strInput, \"\'\", \"\'\'\")
end function
Set objConn = Server.CreateObject(\"ADODB.Connection\")
conStr = \"Provider=Microsoft.Jet.OLEDB.4.0;\"
%><!--#INCLUDE FILE=\"../include/db.inc\" --><%
objConn.Open conStr
strSQL = \"Insert into forumsvar (\"
strSQL = strSQL & \"navn, \"
strSQL = strSQL & \"mail, \"
strSQL = strSQL & \"indlaegid, \"
strSQL = strSQL & \"indhold, \"
strSQL = strSQL & \"dato) \"
strSQL = strSQL & \"values( \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"navn\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"email\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"indlaegid\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"besked\")) & \"\', \"
strSQL = strSQL & \"\'\" & now() & \"\')\"
objConn.Execute(strSQL)
objconn.close
set objconn = nothing

if Request.form(\"email\") <> \"\" then

Set objConn = Server.CreateObject(\"ADODB.Connection\")
conStr = \"Provider=Microsoft.Jet.OLEDB.4.0;\"
%><!--#INCLUDE FILE=\"../include/db.inc\" --><%
objConn.Open conStr
strSQL = \"Insert into forummail (\"
strSQL = strSQL & \"navn, \"
strSQL = strSQL & \"mail, \"
strSQL = strSQL & \"indlaegid) \"
strSQL = strSQL & \"values( \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"navn\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"email\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"indlaegid\")) & \"\', \"
objConn.Execute(strSQL)    --à HER ER LINIE 42 ß--
objconn.close
set objconn = nothing

end if
Response.Redirect \"show.asp?id=\" & Request.form(\"indlaegid\")
%>
Avatar billede darkhero Nybegynder
27. december 2001 - 11:33 #3
Der er faktisk flere fejl:

<%
Response.Cookies(\"12tri\")(\"navn\") = request.form(\"navn\")
Response.Cookies(\"12tri\")(\"email\") = request.form(\"email\")
Response.Cookies(\"12tri\").Expires = Date+365
function strCorrect(strInput)
strCorrect = Replace(strInput, \"\'\", \"\'\'\")
end function
Set objConn = Server.CreateObject(\"ADODB.Connection\")
conStr = \"Provider=Microsoft.Jet.OLEDB.4.0;\"
%><!--#INCLUDE FILE=\"../include/db.inc\" --><%
objConn.Open conStr
strSQL = \"Insert into forumsvar (\"
strSQL = strSQL & \"navn, \"
strSQL = strSQL & \"mail, \"
strSQL = strSQL & \"indlaegid, \"
strSQL = strSQL & \"indhold, \"
strSQL = strSQL & \"dato) \"
strSQL = strSQL & \"values( \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"navn\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"email\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"indlaegid\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"besked\")) & \"\', \"
strSQL = strSQL & \"\'\" & now() & \"\')\"
objConn.Execute(strSQL)
objconn.close
set objconn = nothing

if Request.form(\"email\") <> \"\" then

Set objConn = Server.CreateObject(\"ADODB.Connection\")
conStr = \"Provider=Microsoft.Jet.OLEDB.4.0;\"
%><!--#INCLUDE FILE=\"../include/db.inc\" --><%
objConn.Open conStr
strSQL = \"Insert into forummail (\"
strSQL = strSQL & \"navn, \"
strSQL = strSQL & \"mail, \"
strSQL = strSQL & \"indlaegid) \"
strSQL = strSQL & \"values( \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"navn\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"email\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"indlaegid\")) & \"\') \"
objConn.Execute(strSQL)    --à HER ER LINIE 42 ß--
objconn.close
set objconn = nothing

end if
Response.Redirect \"show.asp?id=\" & Request.form(\"indlaegid\")
%>
Avatar billede 12tri Nybegynder
27. december 2001 - 11:50 #4
tak, jeg fandt selv fejlen, men du skal nok få point. Jeg endte med at have koden således, jeg fjernede feltet navn, da jeg ikke brugte det til noget:

strSQL = \"Insert into forummail (\"
strSQL = strSQL & \"mail, \"
strSQL = strSQL & \"indlaegid) \"
strSQL = strSQL & \"values( \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"email\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"indlaegid\")) & \"\')\"
objConn.Execute(strSQL)

Tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester