Avatar billede 44fire44 Nybegynder
17. april 2013 - 19:38 Der er 15 kommentarer og
1 løsning

Syntaxfejl i Update-string til Access db (alm. ASP)

Hej eksperter

Jeg sidder og roder med noget ASP og får en syntaxfejl på min string som håndterer en opdatering af den tilhørende access database (ja, det er noget gammelt skidt)

Nogle som er mere vågne end jeg og som kan fortælle hvor fejlen befinder sig?

syntaxfejlen skulle være på linje 17:

SET tabel=DbObj.Execute("UPDATE Database SET (Overskrift, Tekst, Reakefoelge, Kunde) VALUES ('" & request.form("Overskrift") & "','" &  replace(request.form("Tekst"),"'","''") & "','" & request.form("Reakefoelge") & "','" & request.form("Kunde") & "' WHERE Id = '" & request.form("Id") & "')")
Avatar billede arne_v Ekspert
17. april 2013 - 19:59 #1
Tillader Access:

UPDATE tabel SET (...) VALUES (...) WHERE ...

?

Normalt er det:

INSERT INTO tabel (...) VALUES (...)

eller

UPDATE tabel SET x=y,z=w WHERE ....
Avatar billede arne_v Ekspert
17. april 2013 - 19:59 #2
Men ellers proev og udskriv den endelige SQL.
Avatar billede 44fire44 Nybegynder
17. april 2013 - 20:12 #3
Du har selvfølgelig ret

Nu fik jeg rettet den til

SET tabel=DbObj.Execute("UPDATE Database SET Overskrift=" & request.form("Overskrift") & ", Tekst=" & request.form("Tekst") & ", Reakefoelge=" & request.form("Reakefoelge") & ", WHERE ID=" & request.QueryString("ID") & "")

- men nu får jeg denne fejl: Syntax error (missing operator) in query expression 'Overskrift'.
Avatar billede 44fire44 Nybegynder
17. april 2013 - 20:39 #4
(og 'Overskrift' i syntax-erroren er altså indholdet som står under Overskrift i access-DBen)
Avatar billede arne_v Ekspert
17. april 2013 - 20:42 #5
Jeg tror du mangler '' omkring streng vaerdier
Avatar billede 44fire44 Nybegynder
17. april 2013 - 21:00 #6
nope, det brokkede den sig stadig over.. Men jeg har rettet lidt til, for request.Query skulle vore request.form da den kommer fra et hidden helt i selve formularen - og så var der en ' for meget

Nu er række 17 som følgende - men stadig samme fejl: Syntax error (missing operator) in query expression 'DetteErEnOverskrift'.


SET tabel=DbObj.Execute("UPDATE Helpdesk SET Overskrift=" & request.form("Overskrift") & ", Tekst=" & request.form("Tekst") & ", Reakefoelge=" & request.form("Reakefoelge") & ", Kunde=" & request.form("Kunde") & ", WHERE ID=" & request.form("ID") & "")
Avatar billede arne_v Ekspert
17. april 2013 - 21:07 #7
Jeg tror stadig paa '' saa:

SET tabel=DbObj.Execute("UPDATE Helpdesk SET Overskrift='" & request.form("Overskrift") & "', Tekst='" & request.form("Tekst") & "', Reakefoelge=" & request.form("Reakefoelge") & ", Kunde=" & request.form("Kunde") & ", WHERE ID=" & request.form("ID") & "")

indsaet selv for raekkefoelg og kunde hvis de ogsaa er tekst
Avatar billede 44fire44 Nybegynder
17. april 2013 - 21:18 #8
Tjaa - så får jeg bare en anden fejl :o)

Syntax error in UPDATE statement.
Avatar billede arne_v Ekspert
17. april 2013 - 21:34 #9
proev og udskriv den endelige SQL saetning og copy paste den herind
Avatar billede 44fire44 Nybegynder
17. april 2013 - 21:38 #10
<%
SET DbObj=Server.CreateObject("ADODB.Connection")
DbObj.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=database.mdb"
SET tabel=DbObj.Execute("UPDATE Helpdesk SET Overskrift='" & request.form("Overskrift") & "', Tekst='" & request.form("Tekst") & "', Reakefoelge='" & request.form("Reakefoelge") & "', Kunde='" & request.form("Kunde") & "', WHERE Id=" & request.form("id") & "")
%>
Avatar billede claes57 Ekspert
17. april 2013 - 22:12 #11
SET tabel=DbObj.Execute("UPDATE Helpdesk SET Overskrift='" & request.form("Overskrift") & "', Tekst='" & request.form("Tekst") & "', Reakefoelge='" & request.form("Reakefoelge") & "', Kunde='" & request.form("Kunde") & "', WHERE Id=" & request.form("id") & "")

fjern de sidste to " i slutningen.
Avatar billede 44fire44 Nybegynder
17. april 2013 - 22:15 #12
giver stadig fejl (og så er Id heller ikke afsluttet?)
Avatar billede keysersoze Guru
18. april 2013 - 00:00 #13
Når nu du alligevel er i gang så skal du måske overveje at sikre dig mod SQL Injections; http://www.web-dev.dk/post/2008/07/14/SQL-injections-mere-end-bare-et-pling.aspx
Avatar billede arne_v Ekspert
18. april 2013 - 02:21 #14
komma foran WHERE skal vaek
Avatar billede 44fire44 Nybegynder
21. april 2013 - 01:23 #15
og det var da lige præcis dér problemet var, arne :) smid et svar og points til dig! :)
Avatar billede arne_v Ekspert
21. april 2013 - 01:33 #16
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

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