Avatar billede cholden Nybegynder
06. september 2006 - 15:19 Der er 5 kommentarer og
1 løsning

Fejl i update access db

Hej eksperter.

Får følgende fejl:
-------------
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

/www/aebleskoven/main/login/site/om_klubben_rediger_sendes.asp, line 16
----------

Koden er
-----------
<%Dim ID,opslag
id=Request.QueryString("ID")

Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("../../../db.mdb")

if Request.form("overskrift") <> "" or Request.form("text") <> "" AND Request.form("priotet") <> "" then

   
    SQLstringK= "UPDATE om_klubben SET overskrift='"&Request.form("overskrift")&"', text='"&Request.form("text")&"', priotet='"&Request.form("priotet")&"' WHERE id="&id
    Connection.Execute(SQLstringK)
    response.buffer=true
    response.clear
    response.redirect "../../site/om_klubben.asp"
    response.end

    else
    Response.Redirect "om_klubben_rediger.asp?id=" & Request.QueryString("id") & "&error=<br>Du skal både indtaste overskrift, tekst og priotet.<br><br>Prøv igen!"
end if
    %>
Avatar billede cholden Nybegynder
06. september 2006 - 15:20 #1
Her er forresten linie 15 og 16:
15     SQLstringK= "UPDATE om_klubben SET overskrift='"&Request.form("overskrift")&"', text='"&Request.form("text")&"', priotet='"&Request.form("priotet")&"' WHERE id="&id
16    Connection.Execute(SQLstringK)
Avatar billede fennec Nybegynder
06. september 2006 - 15:28 #2
Text er et reserveret ord, så den skal omdøbes eller i []

SQLstringK= "UPDATE om_klubben SET overskrift='"&Request.form("overskrift")&"', [text]='"&Request.form("text")&"', priotet='"&Request.form("priotet")&"' WHERE id="&id
Avatar billede cholden Nybegynder
06. september 2006 - 15:32 #3
nårh ja, det er da da rigtigt!!

Mange tak! Smid et svar
Avatar billede fennec Nybegynder
06. september 2006 - 15:55 #4
Også tager du ikke hånd om ' tegn. Så hvis brugerne indtaster et ' får du en fejl. De kan faktisk slette din database.

Udskift alle ' med 2 via replace funktionen på dine tekstfelter. De smarte laver det som et funktione kald:
SQLstringK= "UPDATE om_klubben SET overskrift='"& replace(Request.form("overskrift"),"'","''")&"', [text]='"&replace(Request.form("text"),"'","''")&"', priotet='"&replace(Request.form("priotet"),"'","''")&"' WHERE id="&id

.o) <-- One Eyed Jack
Avatar billede softspot Forsker
06. september 2006 - 16:22 #5
...og de rigtig smarte bruger Command-objektet i stedet for, så slipper du for at replace noget som helst ;-)
Avatar billede softspot Forsker
06. september 2006 - 16:29 #6
sql = "UPDATE om_klubben SET overskrift=?, [text]=?, priotet=? WHERE id=?"

Set cmd = Server.CreateObject("ADODB.Command")
set cmd.ActiveConnection = Connection
cmd.CommandText = sql

cmd(0) = Request.form("overskrift")
cmd(1) = Request.form("text")
cmd(2) = Request.form("priotet")
cmd(3) = id

call cmd.Execute()
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