Avatar billede krisbjoern Nybegynder
11. marts 2008 - 15:01 Der er 8 kommentarer og
1 løsning

Den ene SQL=UPDATE virker ikke - Den anden Gør

Jeg har lavet et lille administartionsmodul til min hjemmeside. Der kan jeg eks. oprette nyheder og ændre på menu'en på selve hjemmesiden osv.
Det med at oprette nyheder går fint.

Og jeg har lavet en lille funktion hvor jeg har i alt 8 menupunkter til råighed, som jeg med en SQL UPDATE sætning kan Aktivere / De-Aktivere hver for sig. Det virker fint.

Men jeg har også en FORSIDE tekst, som jeg henter fra en ACCESS (2007) database (den samme DB som alt det andet)...
Den kan jeg tilgengæld IKKE rette i og ændre med en SQL-Update sætning.

Jeg fatter ikke hvad der går galt.

Koden til den side (hentes ind via SSI) fylder 6 linier:
<%
SQL2="UPDATE Tab_Start SET Fld_Dato=" & Request.Form("Dato2") & ", Fld_BodyDK='" & Request.Form("FTextDK") & "', Fld_BodyGB='" & Request.Form("FTextGB") & "', Fld_Author='" & Request.Form("Author") & "', WHERE ID=1"
   
Response.Write(SQL2)
   
Conn.Execute(SQL2)
   
%>

Og det giver flg fejlmelding:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression ''Velkommen til MAQMA's website� Den er under udvikling'.

/MAQMA_2/Admin/ssi/FTextGEM.asp, line 6


Jeg har prøvet at laver en test = Response.Write(SQL2) og den skriver ALT ud...

Kan nogen hjælpe mig?
Avatar billede di8leva Nybegynder
11. marts 2008 - 15:11 #1
det förste jeg kan se er at det sidste komma skal fjernes

Request.Form("Author") & "', WHERE ID=1"
=>
Request.Form("Author") & "' WHERE ID=1"

kan du så udskrive hvad "Response.Write(SQL2)" gir?
Avatar billede krisbjoern Nybegynder
11. marts 2008 - 15:59 #2
-> di8leva
Ups - Jeps det komma er "for meget"
MEn det løser desværre ikke problemet.

Her er hvad der bliver skrevet ud med Response.Write(SQL2)

UPDATE Tab_Start SET Fld_Dato=11-03-2008, Fld_BodyDK='Velkommen til MAQMA's website… Den er under udvikling, men indtil vi er "rigtigt" i luften kan du lytte på en håndfuld sange i vores egen lille online MAQMA JUKEBOX - ROCK RADIO Sangene streames så der kan godt gå op til 30 sek. Før den enkelte sang starter (afhænbgig af din internet forbindelse), så hav en smule tålmodighed. ROCK ON MAQMA', Fld_BodyGB='Welcome to the official MAQMA WEBSITE… We're working on the site, so please enjoy our own MAQMA JUKEBOX - ROCK RADIO until we have some more site-features for you. The songs may take up to 30 seconds before starting (the firste time for each song) - but it's worth waiting for ;o) ROCK ON MAQMA', Fld_Author='Kristian Bjørn' WHERE ID=1

Gad vide om det er anførselstegnene omkring rirgtigt (midt i 2. linie) der volder probleme?!?

Det prøver jeg lige at ændre i hvertfald ;o)
Avatar billede krisbjoern Nybegynder
11. marts 2008 - 16:00 #3
Nej - Det hjalp heller ikke :o(
Avatar billede mitbrugernavn Praktikant
11. marts 2008 - 16:26 #4
du skal have replac din streng med ' ellers går det galt

SQL2="UPDATE Tab_Start SET Fld_Dato=" & Request.Form("Dato2") & ", Fld_BodyDK='" & Request.Form("FTextDK") & "', Fld_BodyGB='" & replace(Request.Form("FTextGB"),"'","''") & "', Fld_Author='" & Request.Form("Author") & "', WHERE ID=1"

'det er request.form("FTextGB") den går galt i og det skal du gøre også de andre steder hvor der er muligheder for ' indtastning
Avatar billede mitbrugernavn Praktikant
11. marts 2008 - 16:27 #5
du erstatter 1 ' med 2 ''
Avatar billede krisbjoern Nybegynder
11. marts 2008 - 21:32 #6
-> mitbrugernavn
Det tror jeg dælme da du har ret i...
Jeg skal lige hjem til min egen PC for at teste det ;o)
Vender tilbage (i morgen formiddag)
Avatar billede mitbrugernavn Praktikant
11. marts 2008 - 22:07 #7
ja - selvfølgelig har jeg ret ;-)))) - ' i en tekststreng i en update eller insert går galt - det er jo afslutningstegn derfor ;-)))))
Avatar billede krisbjoern Nybegynder
12. marts 2008 - 09:46 #8
Jeps - Det fung'r...
Jeg havde totalt glemt replace() funktionen - men på den anden side, så havde jeg jo også overset problematikken med at benytte ' i en SQL-streng.

1000 tak for hurtig hjælp ;o)
Avatar billede mitbrugernavn Praktikant
12. marts 2008 - 12:09 #9
det var så lidt og tak for point ;-))
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