Avatar billede Noam-9 Praktikant
05. oktober 2001 - 11:07 Der er 13 kommentarer og
2 løsninger

Syntax error in UPDATE statement

Jeg faar nedenstaaende fejl naar jeg loader en side der skal opdatere data i en database:

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

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

/3y/Undersider/gemret.asp, line 20
******************************************

Nu har jeg kigget paa den lede update statement i en lille uge, og jeg fatter ikke hvad der er galt med den.

¿Er der nogen der kan hjaelpe?

Her er koden fra siden:
******************************************
<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"../fpdb/3y.mdb\")

SQLstmt = \"UPDATE DISTINCTROW adresser SET fornavn= \'\" & request.form(\"fornavn\") & \"\', efternavn = \'\" & request.form(\"efternavn\") & \"\', gade = \'\" & request.form(\"gade\") & \"\', by = \'\" & request.form(\"by\") & \"\', tlf = \'\" & request.form(\"tlf\") & \"\', mobil = \'\" & request.form(\"mobil\") & \"\', mail = \'\" & request.form(\"mail\") & \"\', icq = \'\" & request.form(\"icq\") & \"\' WHERE id = \" & Request(\"id\")

Conn.Execute (SQLstmt)

conn.Close
Set conn = nothing
Set SQLstmt = nothing

response.redirect (\"default.asp\")
%>
******************************************
Avatar billede keysersoze Ekspert
05. oktober 2001 - 11:09 #1
kan man godt bruge DISTINCTROW i en update-sætning?
Avatar billede eagleeye Praktikant
05. oktober 2001 - 11:09 #2
by  er reserveret ord i Access.
Ændre felt navnet til bynavn eller sæt [] omkring
[by]
Avatar billede zeptic Nybegynder
05. oktober 2001 - 11:09 #3
du skal vel starte med at fortælle update hvilken tabel det drejer sig om. Og så kan du (tror jeg) ikke bruge distinctrow.

Hvis din tabel hedder adresser, så prøv med:

SQLstmt = \"UPDATE adresser SET fornavn= \'\" & request.form(\"fornavn\") & \"\', efternavn = \'\" & request.form(\"efternavn\") & \"\', gade = \'\" & request.form(\"gade\") & \"\', by = \'\" & request.form(\"by\") & \"\', tlf = \'\" & request.form(\"tlf\") & \"\', mobil = \'\" & request.form(\"mobil\") & \"\', mail = \'\" & request.form(\"mail\") & \"\', icq = \'\" & request.form(\"icq\") & \"\' WHERE id = \" & Request(\"id\")
Avatar billede eagleeye Praktikant
05. oktober 2001 - 11:12 #4
Der skulle så vidt jeg ved ikke være noget i vejen for at havde UPDATE DISTINCTROW.
Avatar billede keysersoze Ekspert
05. oktober 2001 - 11:12 #5
nu kender jeg heller ikke helt meningen med det, men \"by\" burde også kunne bringe en fejl da det er et reserveret ord - prøv noget a la

SQLstmt = \"UPDATE * from adresser SET fornavn= \'\" & request.form(\"fornavn\") & \"\', efternavn = \'\" & request.form(\"efternavn\") & \"\', gade = \'\" & request.form(\"gade\") & \"\', [by] = \'\" & request.form(\"by\") & \"\', tlf = \'\" & request.form(\"tlf\") & \"\', mobil = \'\" & request.form(\"mobil\") & \"\', mail = \'\" & request.form(\"mail\") & \"\', icq = \'\" & request.form(\"icq\") & \"\' WHERE id = \" & Request(\"id\")



Avatar billede keysersoze Ekspert
05. oktober 2001 - 11:13 #6
men den er lidt overflødig, da der ikke burde kunne komme to med samme ID
Avatar billede eagleeye Praktikant
05. oktober 2001 - 11:15 #7
Det giver ikke den store mening men det er tilladt.
Avatar billede zeptic Nybegynder
05. oktober 2001 - 11:16 #8
hvem siger id er unik? :o)
Avatar billede eagleeye Praktikant
05. oktober 2001 - 11:18 #9
Som jeg har skrevet en gang før, BY er reserveret ord i access. Se her er alle ord som man bør ungå i felt og tabel navne.
http://support.microsoft.com/support/kb/articles/Q209/1/87.ASP

Ændre by til bynavn eller sæt [] i SQL udtrykket: ... \'\", [by] = \'\" & reguest...
Avatar billede Noam-9 Praktikant
05. oktober 2001 - 11:25 #10
Der gaar lige lidt tid inden jeg kan svare, for jeg sider nok med jordens daarligste forbindelse paa et universitet i Madrid
Avatar billede Noam-9 Praktikant
05. oktober 2001 - 15:25 #11
Saa har jeg proevet et par forskellige loesninger.

Hvis jeg saetter [] uden om by faar jeg flg. fejlbesked
*************************************
Microsoft OLE DB Provider for ODBC Drivers error \'80004005\'

[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

/3y/Undersider/gemret.asp, line 20
*************************************
!Det gaelder ogsaa hvis man udelukker DISTINCTROW i statementet!


Med svaret fra keysersoze (05/10 2001 11:12:31) faar jeg samme fejlbesked som foer:
************************************* 
Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

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

/3y/Undersider/gemret.asp, line 20
*************************************

¿Nogen forslag?
Avatar billede eagleeye Praktikant
05. oktober 2001 - 15:26 #12
har du ændret BY ?
Avatar billede eagleeye Praktikant
05. oktober 2001 - 15:31 #13
Det kunne godt se ud som om man ikke kan benytte DISTINCTROW i en UPDATE.

Denne fejl \'80040e14\' betyder som regl at et felt/table er stavet forkert, eller et reserveret ord bliver brugt.
Avatar billede keysersoze Ekspert
07. oktober 2001 - 22:24 #14
Operation must use an updateable query - betyder som regel at der ikke er skriveadgang til det sted (=mappe) hvor databasen ligger...
Avatar billede Noam-9 Praktikant
11. oktober 2001 - 19:21 #15
Mange tak for hjaelpen.
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