Avatar billede bgo Nybegynder
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")
Avatar billede webbe Nybegynder
28. september 2004 - 11:15 #1
prøv at poste fejlen også....en syntaxfejl kan være flere ting
Avatar billede bgo Nybegynder
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 . . .
Avatar billede webbe Nybegynder
28. september 2004 - 11:15 #3
du skal specielt være opmærksom på om dine database-felter er af typen tekst eller tal
Avatar billede trekkies Juniormester
28. september 2004 - 11:17 #4
Du må ikke bruge Æ,Ø og Å, f.eks. Tekststørrelse
Avatar billede bgo Nybegynder
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
Avatar billede webbe Nybegynder
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
Avatar billede bgo Nybegynder
28. september 2004 - 11:19 #7
trekkies:

har lige prøvet at ændre Tekststørrelse til Tekststorrelse i sql'en og databasen - samme resultat
Avatar billede webbe Nybegynder
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)
Avatar billede webbe Nybegynder
28. september 2004 - 11:21 #9
ja - det er en god idé at undgå æ,ø og å i feltnavne
Avatar billede bgo Nybegynder
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")
Avatar billede ellebaek Nybegynder
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.
Avatar billede trekkies Juniormester
28. september 2004 - 11:22 #12
Hvilken update sætning er på linie 46 på denne side: admin/gemskabelon.asp?
Avatar billede ldanielsen Nybegynder
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)
Avatar billede bgo Nybegynder
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
Avatar billede bgo Nybegynder
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
Avatar billede bgo Nybegynder
28. september 2004 - 11:29 #16
og lige nu er Tekststorrelse af typen Byte
Avatar billede bgo Nybegynder
28. september 2004 - 11:31 #17
cstr(request.form("fontsize")) gjorde heller ingen forskel...
Avatar billede trekkies Juniormester
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") & "'"
Avatar billede webbe Nybegynder
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
Avatar billede bgo Nybegynder
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
Avatar billede webbe Nybegynder
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
Avatar billede bgo Nybegynder
28. september 2004 - 11:48 #22
webbe:

det gør heller ingen forskel
Avatar billede bgo Nybegynder
28. september 2004 - 11:51 #23
eller jo, det gør den forskel at værdien for intTop ikke skifter ;)
Avatar billede ldanielsen Nybegynder
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
Avatar billede webbe Nybegynder
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
Avatar billede ldanielsen Nybegynder
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
Avatar billede eagleeye Praktikant
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]
Avatar billede bgo Nybegynder
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...)
Avatar billede ldanielsen Nybegynder
28. september 2004 - 11:58 #29
ok, prøv at omdøbe Top
Avatar billede eagleeye Praktikant
28. september 2004 - 11:59 #30
man kan starte mendn klammer omkring [top] :)
Avatar billede bgo Nybegynder
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? :)
Avatar billede eagleeye Praktikant
28. september 2004 - 12:33 #32
Ok her et svar fra mig ;)
Avatar billede ldanielsen Nybegynder
28. september 2004 - 12:36 #33
Jeg var vist også med? :o)
Avatar billede bgo Nybegynder
28. september 2004 - 13:59 #34
håber det er ok at eagleeye fik flest da han kom først ;)
Avatar billede ldanielsen Nybegynder
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)
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