Någon som har en förklaring till varför jag får felmeddelande: Som felmeddelandet säger så har du syntaxfel i din sql-sats. Omöjligt att svara på vad det är utan att se sql-satsen. Såhär ser då SQL satsen ut. När du säger tokfel, kan du då också säga vad som är fel är du snäll. Nja, lite ser jag det som att skall man skriva SQL så skall man veta ungefär hur det fungerar. Felet du har gjort är att skriva det onödigt komplicerat och när du skall felsöka ser du inte vad felet blir. Testa SQL-strängen är korrekt under förutsättning att inga fält i databasen är numeriska! <b>SQL-stränngen är korrekt under förutsättning att inga fält i databasen är numeriska!</b> Jag ber så mycket om ursäkt för att ha tagit upp er tid med ett så trivialt problem. Ingen fara, ibland spårar hjärnan ur och man kan sitta länge med något sådant skitfel... ;-) Då är det så skönt att veta att Pellesoft med vänner finns att fråga om hjälp.Problem i ASP med syntax
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
när jag försöker uppdatera något mot min databas.
Tack för hjälpen!
-MSv: Problem i ASP med syntax
/JohanSv: Problem i ASP med syntax
sqlstmt = "UPDATE USERS"
sqlstmt = sqlstmt & " SET"
sqlstmt = sqlstmt & " fullname='" & fullname & "',"
sqlstmt = sqlstmt & " persnr='" & persnr & "',"
sqlstmt = sqlstmt & " coname='" & coname & "',"
sqlstmt = sqlstmt & " careof='" & careof & "',"
sqlstmt = sqlstmt & " coaddress='" & coaddress & "',"
sqlstmt = sqlstmt & " copostort='" & copostort & "',"
sqlstmt = sqlstmt & " copostnr='" & copostnr & "',"
sqlstmt = sqlstmt & " phone='" & phone & "',"
sqlstmt = sqlstmt & " mobil='" & mobil & "',"
sqlstmt = sqlstmt & " WHERE id=" & id
Response.write SQLstmt &"<br>"
Set RS = conn.execute(SQLstmt)
Response.redirect ("index.asp?sid=sid&action=account&m=3")
Någon idé om vad som ska ändras?
-MSv: Problem i ASP med syntax
Jag ser det som att alla satserna ser likadana ut, menar du då att alla är fel?
-MSv: Problem i ASP med syntax
och ta bort alla
<code>
sqlstmt = "UPDATE USERS"
sqlstmt = sqlstmt & " SET"
sqlstmt = sqlstmt & " fullname='" & fullname & "',"
sqlstmt = sqlstmt & " persnr='" & persnr & "',"
sqlstmt = sqlstmt & " coname='" & coname & "',"
</code>
så att du bara ser SQL-satsen så blir det översiktligare när du felsöker. Dvs unefär så här:
<code>
UPDATE USERS SET fullname='" & fullname & "', persnr='" & persnr & "', coname='" & coname & "',"
</code>
till slut så kommer du att se
<code>
" mobil='" & mobil & "', WHERE id=" & id
</code>
och hittar du inte felet nu så... http://www.w3schools.com/sql/default.aspSv: Problem i ASP med syntax
Har testat att skriva ut den med nedanstående kod och den ser rätt ut.
Observera dock att om något av fälten i databasen, text copostnr, är ett fält inställt för Tal och inte för Text så blir det fel. För detta fält måste du då ta bort enkelfnuttarna kring värdet. Det motsatta gäller för fält som är inställda för Text, där måste värdet omslutas av enkelfnuttar.
<%
' Här har jag baratilldelat variablerna värden
' för att man ska kunna se SQL-strängen i sin helhet
fullname = "Svempa"
persnr = "961030-0068"
coname= "Firman AB"
careof = ""
coaddress = "A-gatan 45"
copostort = "A-stad"
copostnr = "123 45"
phone = "08-987 65 43"
mobil = "070-12345678"
id = 4
sqlstmt = "UPDATE USERS"
sqlstmt = sqlstmt & " SET"
sqlstmt = sqlstmt & " fullname='" & fullname & "',"
sqlstmt = sqlstmt & " persnr='" & persnr & "',"
sqlstmt = sqlstmt & " coname='" & coname & "',"
sqlstmt = sqlstmt & " careof='" & careof & "',"
sqlstmt = sqlstmt & " coaddress='" & coaddress & "',"
sqlstmt = sqlstmt & " copostort='" & copostort & "',"
sqlstmt = sqlstmt & " copostnr='" & copostnr & "',"
sqlstmt = sqlstmt & " phone='" & phone & "',"
sqlstmt = sqlstmt & " mobil='" & mobil & "',"
sqlstmt = sqlstmt & " WHERE id=" & id
Response.write(SQLstmt &"<br>")
' Kommentera dessa rader så utförs dom inte
' och du får endast SQL-strängen utskriven.
' Då är det lättare att se om nåt skrivs ut fel.
'Set RS = conn.execute(SQLstmt)
'Response.redirect ("index.asp?sid=sid&action=account&m=3")
%>Sv: Problem i ASP med syntax
Vill snarare påstå att det beror på syntaxfel då sqlsatsen slutar med
<code> mobil='070-111111', WHERE id=1</code>
Dvs att det sista kommatecknet ger felet och skall ej vara där.
Edit: Färgerna på koden blir ju tokfel, det skall iaf inte vara något kommatecken innan WHERE-villkoret.Sv: Problem i ASP med syntax
Ett litet kommatecken kan ge så mycket huvudbry...
Tack för hjälpen!
-MSv: Problem i ASP med syntax
Sv: Problem i ASP med syntax
Ha en bra dag!
-M