28. september 2004 - 11:13
Der er
33 kommentarer og 2 løsninger
syntaxfejl i UPDATE
møg og p... ret irriterende. UPDATE Skabeloner SET Skabelonnavn = 'Demo skabelon', Baggrund = 'ffffff', Teksttype = 'Geneva, Arial, Helvetica, san-serif', Tekststørrelse = '2', Tekstfarve = '000000', Linkfarve = '0000FF', Listefarve1 = '666666', Listefarve2 = '333333', Top = False WHERE id = 1 udløser en syntaxfejl (0x80040E14). Sætningen bliver dannet af: strSQL = "UPDATE Skabeloner SET Skabelonnavn = '" & request.form("skabnavn") & "', Baggrund = '" & request.form("bgcolor") & "', Teksttype = '" & request.form("font") & "', Tekststørrelse = '" & request.form("fontsize") & "', Tekstfarve = '" & request.form("textcolor") & "', Linkfarve = '" & request.form("linkcolor") & "', Listefarve1 = '" & request.form("listefarve1") & "', Listefarve2 = '" & request.form("listefarve2") & "'" if request.form("top")="checkbox" then strSQL = strSQL & ", Top = True" else strSQL = strSQL & ", Top = False" end if strSQL = strSQL & " WHERE id = " &request.querystring("id")
Annonceindlæg fra Barco
28. september 2004 - 11:15
#1
prøv at poste fejlen også....en syntaxfejl kan være flere ting
28. september 2004 - 11:15
#2
Tekniske oplysninger (for supportteknikere) Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i UPDATE-sætningen. /admin/gemskabelon.asp, line 46 Browsertype: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322) Side: POST 221 bytes to /admin/gemskabelon.asp POST Data: skabnavn=Demo+skabelon&bgcolor=ffffff&font=Geneva%2C+Arial%2C+Helvetica%2C+san-serif&fontsize=2&textcolor=000000&linkcolor=0000FF&listefarve1=666666&listefarve2=333333&bund=checkbox&right=checkbox&lef . . .
28. september 2004 - 11:15
#3
du skal specielt være opmærksom på om dine database-felter er af typen tekst eller tal
28. september 2004 - 11:17
#4
Du må ikke bruge Æ,Ø og Å, f.eks. Tekststørrelse
28. september 2004 - 11:17
#5
alle felter nævnt her er tekst - pånær id der er autonummer og Top der er Ja/Nej
28. september 2004 - 11:18
#6
tjek lige op på de felter der indeholder værdier for tekststørrelser. hvis de er af typen tal skal du fjerne de enkeltepinger ('') du har omkring dine request.form's ex: hvis db-felterne er af typen tal skal det være følgende: UPDATE Skabeloner SET Skabelonnavn = 'Demo skabelon', Baggrund = 'ffffff', Teksttype = 'Geneva, Arial, Helvetica, san-serif', Tekststørrelse = 2, Tekstfarve = '000000', Linkfarve = '0000FF', Listefarve1 = '666666', Listefarve2 = '333333', Top = False WHERE id = 1
28. september 2004 - 11:19
#7
trekkies: har lige prøvet at ændre Tekststørrelse til Tekststorrelse i sql'en og databasen - samme resultat
28. september 2004 - 11:20
#8
istedet for Ja/Nej til Top ville jeg bruge felttypen tal og sætte feltstørrelsen til byte og så rette sql'en til: UPDATE Skabeloner SET Skabelonnavn = 'Demo skabelon', Baggrund = 'ffffff', Teksttype = 'Geneva, Arial, Helvetica, san-serif', Tekststørrelse = '2', Tekstfarve = '000000', Linkfarve = '0000FF', Listefarve1 = '666666', Listefarve2 = '333333', Top = 0 WHERE id = 1 Derefter tjekker du på Top om den er 0 (False) eller 1 (True)
28. september 2004 - 11:21
#9
ja - det er en god idé at undgå æ,ø og å i feltnavne
28. september 2004 - 11:21
#10
webbe: datatypen for teksstørrelse er også tekst (der er forberedt på senere at kunne angive med eller uden "px")
28. september 2004 - 11:22
#11
strSQL = "UPDATE Skabeloner SET Skabelonnavn = '" & request.form("skabnavn") & "', Baggrund = '" & request.form("bgcolor") & "', Teksttype = '" & request.form("font") & "', Tekststørrelse = '" & cstr(request.form("fontsize")) & "', Tekstfarve = '" & request.form("textcolor") & "', Linkfarve = '" & request.form("linkcolor") & "', Listefarve1 = '" & request.form("listefarve1") & "', Listefarve2 = '" & request.form("listefarve2") & "'" Prøv at tilføje en Cstr om din fontsize som ovenstående.
28. september 2004 - 11:22
#12
Hvilken update sætning er på linie 46 på denne side: admin/gemskabelon.asp?
28. september 2004 - 11:23
#13
Prøv at sætte Top = -1 eller 0 i stedet for True eller False Og prøv også lige at sende den sql det faktisk er der fejler, med Response.write(strSQL)
28. september 2004 - 11:25
#14
Prøvede webbe's forslag 11:20:33. Men: Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i UPDATE-sætningen. /admin/gemskabelon.asp, line 46
28. september 2004 - 11:28
#15
trekkies / ldanielsen: lige nu hedder den: UPDATE Skabeloner SET Skabelonnavn = 'Demo skabelon', Baggrund = 'ffffff', Teksttype = 'Geneva, Arial, Helvetica, san-serif', Tekststorrelse = '2', Tekstfarve = '000000', Linkfarve = '0000FF', Listefarve1 = '666666', Listefarve2 = '333333', Top = 1 WHERE id = 1
28. september 2004 - 11:29
#16
og lige nu er Tekststorrelse af typen Byte
28. september 2004 - 11:31
#17
cstr(request.form("fontsize")) gjorde heller ingen forskel...
28. september 2004 - 11:31
#18
Er der ikke en for meget " efter din listefarve2 Skal den ikke se sådan ud: Listefarve2 = '" & request.form("listefarve2") & "' Før Listefarve2 = '" & request.form("listefarve2") & "'"
28. september 2004 - 11:31
#19
Prøv: if request.form("top")="checkbox" then intTop = 1 else intTop = 0 end if strSQL = "UPDATE Skabeloner SET Skabelonnavn = '" & request.form("skabnavn") & "', Baggrund = '" & request.form("bgcolor") & "', Teksttype = '" & request.form("font") & "', Tekststørrelse = '" & request.form("fontsize") & "', Tekstfarve = '" & request.form("textcolor") & "', Linkfarve = '" & request.form("linkcolor") & "', Listefarve1 = '" & request.form("listefarve1") & "', Listefarve2 = '" & request.form("listefarve2") & "', Top="&intTop&" WHERE id = " &request.querystring("id") Tror måske det har noget at gøre med den IF-sætning du har midt i din Update-sql
28. september 2004 - 11:37
#20
webbe: øv: Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i UPDATE-sætningen. /admin/gemskabelon.asp, line 46 det er da til at gå amok over
28. september 2004 - 11:40
#21
prøv at rette dette her: if request.form("top")= "on" then intTop = 1 else intTop = 0 end if
28. september 2004 - 11:48
#22
webbe: det gør heller ingen forskel
28. september 2004 - 11:51
#23
eller jo, det gør den forskel at værdien for intTop ikke skifter ;)
28. september 2004 - 11:52
#24
UPDATE Skabeloner SET Skabelonnavn = 'Demo skabelon', Baggrund = 'ffffff', Teksttype = 'Geneva, Arial, Helvetica, san-serif', Tekststorrelse = 2, Tekstfarve = '000000', Linkfarve = '0000FF', Listefarve1 = '666666', Listefarve2 = '333333', Top = -1 WHERE id = 1 Prøv med den. Jeg har fjernet plingerne omkring Tekststorrelse, og sat -1 ind i stedet for 1 som Top
28. september 2004 - 11:52
#25
hmmm - må indrømme jeg står af så....tror fejlen kommer et andet sted fra...men kan ikke sige hvor
28. september 2004 - 11:55
#26
Er du 200% sikker på at alle disse felter findes i tabellen Skabeloner?: Skabelonnavn Baggrund Teksttype Tekststorrelse Tekstfarve Linkfarve Listefarve1 Listefarve2 Top id Prøv at skriver [Top], for det er vist også et reserveret ord, eller omdøb den kolonne
28. september 2004 - 11:55
#27
top er et reserveret ord i access, TOP X Så prøv at sætte klammer omkring top eller omdøbt kolonnen [top]
28. september 2004 - 11:57
#28
ldanielsen: den bliver ved - også selvom jeg tog din sql-sætning direkte (altså uden alt det request.form osv...)
28. september 2004 - 11:58
#29
ok, prøv at omdøbe Top
28. september 2004 - 11:59
#30
man kan starte mendn klammer omkring [top] :)
28. september 2004 - 12:01
#31
eagleeye: hold da helt k*ft :D Så lidt der skal til :D Det virker jo nu :) Jeg omdøbte kolonnonen til SideTop, og nu funker det :) Smider du lige et svar? :)
28. september 2004 - 12:33
#32
Ok her et svar fra mig ;)
28. september 2004 - 12:36
#33
Jeg var vist også med? :o)
28. september 2004 - 13:59
#34
håber det er ok at eagleeye fik flest da han kom først ;)
28. september 2004 - 14:59
#35
Det er da ok, men jeg var nu 5 sek. hurtigere med den med at top er reserveret, og alene om at fortælle at true skrives som -1. Men det er fint nok, det er jo kun for sjov vi gør det :o)
Kurser inden for grundlæggende programmering