Avatar billede bremer Nybegynder
31. oktober 2006 - 12:19 Der er 14 kommentarer

Hælpe til - error in UPDATE statement

Hej, Er der nogen som kan sige mig, hvorfor jeg få en fejl kode som siger:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

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

/cms/kontakt_seinfo_gem.asp, line 49

(line 49 er ved conn.execute(strSQL2) under i koden)


Mig kode er her:
                        <%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../../database/database.mdb")
Conn.Open DSN
%>
                          <%

id = request.form("id")
note_status = request.form("note_status")
note = request.form("note")
istatus = request.form("istatus")

strSQL2 = "UPDATE foresporgelse SET note_status='"&note_status&"'," &_
"note='"&note&"'," &_
"istatus='"&istatus&"'" &_
"WHERE id="&id

conn.execute(strSQL2)

%>
                          </span>
                        <p> <span class="test11">&AElig;ndringerne er nu gemt!
                            <%
Conn.Close
set Conn = Nothing
%>
Avatar billede sw_red_6 Nybegynder
31. oktober 2006 - 12:22 #1
kunne det tænkes at det er de her den gakke ud over: " &_" ??
Avatar billede bremer Nybegynder
31. oktober 2006 - 12:26 #2
nej, det er bare så kommer ned på næste linde.
pga. jeg har en anden side, med den præcis sammen opsætning.

og der er ikke nogle fejl....
Avatar billede snowball Novice
31. oktober 2006 - 12:34 #3
Hvis feltet "istatus" er et tal (som i'et i navnet burde antyde), så skal der ikke være ' omkring.
Avatar billede morhan Novice
31. oktober 2006 - 12:41 #4
note er muligvis et reserveret ord, så prøv at bruge [note]
Avatar billede snowball Novice
31. oktober 2006 - 12:46 #5
"note" er ikke umiddelbart et reserveret ord - http://www.petefreitag.com/tools/sql_reserved_words_checker/?word=note
Avatar billede morhan Novice
31. oktober 2006 - 12:51 #6
det er med på denne liste http://support.microsoft.com/kb/321266
Avatar billede fennec Nybegynder
31. oktober 2006 - 12:55 #7
Note ER reserveret i Access hvorfor der skal [] omkring som morhan sagde...
Avatar billede fennec Nybegynder
31. oktober 2006 - 12:59 #8
Desuden skal du sikre dig mod SQL-injections, så din DB ikke bliver hacket ved hjælp af ' tegn. Alle tekst felter skal derfor igennem en replace, som udskifter ' med 2 stk:

note = replace(request.form("note"),"'","''")
Avatar billede softspot Forsker
31. oktober 2006 - 13:03 #9
Det ser ud til at der mangler et mellemrum foran WHERE...
Avatar billede morhan Novice
31. oktober 2006 - 13:15 #10
='streng'WHERE ...

tror jeg godt Access kan afkode korrekt. Det må svare til at undlade mellemrum før et komma
Avatar billede hnteknik Novice
31. oktober 2006 - 13:17 #11
Et godt råd er:

At lave en
response.write(strSQL2)
response.end()

og klistre skærmdumpet ind direkte i Access, hvis du ikke umidelbart kan se fejlen.

Iøvrigt, hvorfor bruge denne gamle type conn string:

Det er fra den gamle Access 97 tid.

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../../database/database.mdb")
Avatar billede snowball Novice
31. oktober 2006 - 13:26 #12
My bad, sorry!
Avatar billede softspot Forsker
31. oktober 2006 - 13:31 #13
morhan >> uenig. et komma er en naturlig separator på linie med et mellemrum, sådan opfatter jeg ikke en apostrof - men jeg skal naturligvis ikke afvise at du har ret (trods alt :))...
Avatar billede bremer Nybegynder
29. april 2012 - 10:51 #14
send et svar
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