Avatar billede agg-zeus Nybegynder
09. december 2001 - 20:01 Der er 26 kommentarer og
2 løsninger

Hvad er der galt?

Hvad er der galt med denne SQL-sætning?

<%

Dim cn, cnstr, sti
sti = server.mappath(\"dbnu.mdb\")
set cn = server.createobject(\"adodb.connection\")
cnstr = \"Provider=Microsoft.Jet.OLEDB.4.0;\"
cnstr = cnstr & \"Data Source=\" & sti & \";\"
cn.connectionstring = cnstr
cn.open

Dim sql
sql = \"update top10 set \'nr1=\"& request.form(\"nr1\") &\", nr2=\"& request.form(\"nr2\") &\", nr3=\"& request.form(\"nr3\") &\", nr4=\"& request.form(\"nr4\") &\", nr5=\"& request.form(\"nr5\") &\", nr6=\"&request.form(\"nr6\") &\", nr7=\"& request.form(\"nr7\") &\", nr8=\"& request.form(\"nr8\") &\", nr9=\"& request.form(\"nr9\") &\", nr10=\"& request.form(\"nr10\") &\"\'\"
sql = sql & \"where ID=1\"

cn.execute sql

cn.close
set cn = nothing

Response.Redirect(\"edittop10.asp?add=iorden\")



%>
Avatar billede medions Nybegynder
09. december 2001 - 20:02 #1
hvilken fejl får du?
Avatar billede invisibleman Nybegynder
09. december 2001 - 20:03 #2
Du har \'\' rundt om din SET ... !? Det skal der IKKE være.
Avatar billede medions Nybegynder
09. december 2001 - 20:04 #3
du skal fjerne \' tegnet foran nr1 !
Avatar billede nute Nybegynder
09. december 2001 - 20:06 #4
1) det er en \' etter ordet \'set\' som ikke skal være der
2) du har en \' før ordet \'where\' som ikke skal være der
3) det er ikke mellomrom mellom verdien i nr10 og where...prøv denne:

sql = \"update top10 set nr1=\"& request.form(\"nr1\") &\", nr2=\"& request.form(\"nr2\") &\", nr3=\"& request.form(\"nr3\") &\", nr4=\"& request.form(\"nr4\") &\", nr5=\"& request.form(\"nr5\") &\", nr6=\"&request.form(\"nr6\") &\", nr7=\"& request.form(\"nr7\") &\", nr8=\"& request.form(\"nr8\") &\", nr9=\"& request.form(\"nr9\") &\", nr10=\"& request.form(\"nr10\") &\" \"
sql = sql & \"where ID=1\"
Avatar billede invisibleman Nybegynder
09. december 2001 - 20:06 #5
Og den sidste \' efter nr10= ..
Avatar billede agg-zeus Nybegynder
09. december 2001 - 20:08 #6
Hvis jeg fjerner \' foran nr1 så før jeg følgende fejlmeddelelse:

Fejltype:
Microsoft JET Database Engine (0x80040E14)
Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket \"Gigi D\'Agostino - L\'Amour Toujours\".
/mdisko/updatetop10.asp, line 15
Avatar billede nute Nybegynder
09. december 2001 - 20:10 #7
du er nødt til å erstatte alle \' i dine verdier med 2x \'...
Avatar billede medions Nybegynder
09. december 2001 - 20:12 #8
præcis hvad nute skriver.... :-) -(ville jo lyde dumt hvis jeg skrev det samme *s*)
Avatar billede agg-zeus Nybegynder
09. december 2001 - 20:12 #9
Desværre nute! Hvis jeg bruger din sql-sætning får jeg følgende fejlmeddelelse:

Fejltype:
Microsoft JET Database Engine (0x80040E14)
Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket \"Gigi D\'Agostino - L\'Amour Toujours\".
/mdisko/updatetop10.asp, line 14


Browsertype:
Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)

Side:
POST 380 bytes to /mdisko/updatetop10.asp

POST Data:
nr1=Lasgo+-+Something&nr2=Gigi+D%27Agostino+-+L%27Amour+Toujours&nr3=Voodoo+%26+Serano+-+Slide+To+The+Vibe&nr4=Infernal+-+Muzaik+%28Paul+Hutsch+Remix%29&nr5=Mellow+Trax+vs.+Shaft+-+Sway&nr6=DJ+Quicksi . . .
Avatar billede medions Nybegynder
09. december 2001 - 20:24 #10
Måske kan det være pga. du har tegnet \' ! Prøv at skriv navnet uden \' tegnene!
Avatar billede medions Nybegynder
09. december 2001 - 20:30 #11
hvis du fjerner det.. kommer den så med samme fejl?
Avatar billede agg-zeus Nybegynder
09. december 2001 - 20:33 #12
Ja den gør! Jeg bruger nu den sætning nute skrev!

sql = \"update top10 set nr1=\"& request.form(\"nr1\") &\", nr2=\"& request.form(\"nr2\") &\", nr3=\"& request.form(\"nr3\") &\", nr4=\"& request.form(\"nr4\") &\", nr5=\"& request.form(\"nr5\") &\", nr6=\"&request.form(\"nr6\") &\", nr7=\"& request.form(\"nr7\") &\", nr8=\"& request.form(\"nr8\") &\", nr9=\"& request.form(\"nr9\") &\", nr10=\"& request.form(\"nr10\") &\" \"
sql = sql & \"where ID=1\"
Avatar billede agg-zeus Nybegynder
09. december 2001 - 20:35 #13
Selv hvis jeg prøver at opdatere med \"hej med dig\" så skirver den samme fejl! Det er i andet felt! Jeg har lige roddet lidt med databasen, men det har ikke hjulpet!
Avatar billede nute Nybegynder
09. december 2001 - 20:37 #14
den kan ikke komme med samme feil...

hvilke type er dine kolonner ? er det tekst eller tall ? *alle* tekstfelt skal ha \'\' om verdiene og *alle* tall kolonner skal være uten \'\':

UPDATE top10 SET tekstkolonne = \'verdi\', tallkolonne=10 WHERE ID = 1

/nute
Avatar billede medions Nybegynder
09. december 2001 - 20:38 #15
hmm... så prøv at sætte \' rundt om alle numrene... fx.:

nr1=\'\" & request.form(\"nr1\") & \"\'\", nr2=\'\"..... osv!
Avatar billede medions Nybegynder
09. december 2001 - 20:40 #16
nute> vi kommer sq da oxo med samme svar hele tiden hva\' *G*
Avatar billede nute Nybegynder
09. december 2001 - 20:40 #17
;-)
Avatar billede agg-zeus Nybegynder
09. december 2001 - 20:42 #18
mine kolonner er tekst!
Den kommer med samme fejl!
Avatar billede medions Nybegynder
09. december 2001 - 20:49 #19
hvilken database er det du bruger???
Avatar billede agg-zeus Nybegynder
09. december 2001 - 20:51 #20
Access database!
Avatar billede nute Nybegynder
09. december 2001 - 20:52 #21
ehhhh....sender du med POST eller GET ?? hvis du sender med GET så skal du ikke benytte \'request.form\', men \'request.querystring\'

/nute
Avatar billede medions Nybegynder
09. december 2001 - 20:54 #22
Virker dette?
UPDATE top10 SET tekstkolonne = \'hmmmmm\' WHERE ID =\'\" & Request.Form(\"nr1\") & \"\'\"
Avatar billede agg-zeus Nybegynder
09. december 2001 - 20:55 #23
Jeg har sq endelig fået lavet det! Nu ser SQL-sætningen således ud:

sql = \"update top10 set nr1=\'\" & server.htmlencode(request.form(\"nr1\")) &\"\', nr2=\'\"& server.htmlencode(request.form(\"nr2\")) &\"\', nr3=\'\"& server.htmlencode(request.form(\"nr3\")) &\"\', nr4=\'\"& server.htmlencode(request.form(\"nr4\")) &\"\', nr5=\'\"& server.htmlencode(request.form(\"nr5\")) &\"\', nr6=\'\"&server.htmlencode(request.form(\"nr6\")) &\"\', nr7=\'\"& server.htmlencode(request.form(\"nr7\")) &\"\', nr8=\'\"& server.htmlencode(request.form(\"nr8\")) &\"\', nr9=\'\"& server.htmlencode(request.form(\"nr9\")) &\"\', nr10=\'\"& server.htmlencode(request.form(\"nr10\")) &\"\' where ID=1\"

Jeg tror ike jeg har brug for server.htmlencode(), men nu virker det.
Jeg fordeler pointne på jer. Tak for hjælpen.
Avatar billede medions Nybegynder
09. december 2001 - 20:56 #24
nute> du har ret... han sender med GET! -kan jo ses på at der er +\'er og procent tegn!

:-)
Avatar billede agg-zeus Nybegynder
09. december 2001 - 20:56 #25
Det var fordi den ikke ville have \' i det værdier jeg opdaterede, men det vil godt have ´ og `.
Avatar billede agg-zeus Nybegynder
09. december 2001 - 20:57 #26
Lige en sidste kommentar! Jeg sender med POST...
Avatar billede agg-zeus Nybegynder
09. december 2001 - 20:59 #27
nute, jeg har også givet dig de 50 point fra spørgsmål http://www.eksperten.dk/spm/142922 ...
Avatar billede nute Nybegynder
09. december 2001 - 21:07 #28
fino :-)

takker...
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