Fick vid ett svagt ögonblick för mig att skapa en access db... Hittade felet... Du kan istället för att skriva om det om ge reserverade ord med [- och ]-tecknet. Du bör oxå kontrollera värdena, annars kan folk uppdatera alla poster i databasen:fel med UPDATE till ACCESS db...
hur som helst
connectionsträng
<code>
Dim dbConn, strDB
set dbConn=server.createobject("adodb.connection")
strDB ="Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & server.MapPath("/eric/dynga.mdb") & ";" &_
"Persist Security Info=False"
dbConn.mode = 3
dbConn.open strDB
</code>
och UPDATE sträng
<code>
dbConn.execute("UPDATE main SET titel ='" & Request.Form("titel") & "', text ='" & Request.Form("text") & "' WHERE id =" & Request.QueryString("main"))
</code>
Får det välkända
Microsoft JET Database Engine error '80040e14'
Syntax error in UPDATE statement.
Och det har tyvärr inte med rättigheter att göra...
Sätter jag om , mellan Request.Form'sen till AND så sätter den titel som 0 :-)
Om jag helt sonika printar ut SQL strängen så ser den ut så här...
UPDATE main SET titel ='Titel', text ='Hmmm... detta skall då vara texten...' WHERE id =9
så... ett mycket märkligt fel detta
hjälp!
// ericSv: fel med UPDATE till ACCESS db...
text var visst ett reserverat ord...
fick döpa om till textf istället :-)
// e.Sv: fel med UPDATE till ACCESS db...
<code>
dbConn.execute "UPDATE main SET titel ='" & Replace(Request.Form("titel"),"'","''") & "', [text] ='" & Replace(Request.Form("text"),"'","''") & "' WHERE id =" & CLng(Request.QueryString("main"))
</code>
CLng(Request.QueryString("main")) kommer hindra icke numeriskta värden. Men ge ett felmedelande om ett ickenumeriskt värde är angivet. Vilkt bara borde ske om någon medvetet gör det.
Om man vill göra en kontroll av Main innan skriver man:
<code>
Dim Main
Main = "" & Request.QueryString("main")
If IsNumeric(Main) Then
dbConn.execute "UPDATE main SET titel ='" & Replace(Request.Form("titel"),"'","''") & "', [text] ='" & Replace(Request.Form("text"),"'","''") & "' WHERE id =" & CLng(Main)
Else
Response.Write "Main har ett ogiltligt värde!"
End If
</code>