Avatar billede svinget Praktikant
20. oktober 2006 - 15:46 Der er 11 kommentarer og
1 løsning

SQL streng på flere linier

Er der en nemmere måde at skrive den SQL streng på?:

strSQL = "update respond1 set sp1='" & Request.Form("r1") & "', sp2='" & Request.Form("r2") & "', sp3='" & Request.Form("r3") & "', sp4='" & Request.Form("r4") & "', sp5='" & Request.Form("r5") & "' where id = '" & Request.Form("id") &"'"

Det er pga. jeg har knapt 50 spørgsmål, så det bliver en hammer lang sætning. Kan man gøre noget så det kommer til at ligge på flere linier?
Avatar billede plx Nybegynder
20. oktober 2006 - 15:56 #1
du kan bruge &_ til at dele linien op

strSQL = "update respond1 set sp1='" & Request.Form("r1") & "', " &_
    "sp2='" & Request.Form("r2") & "', " &_
    "sp3='" & Request.Form("r3") & "', " &_
    "sp4='" & Request.Form("r4") & "', " &_
    "sp5='" & Request.Form("r5") & "' " &_
    "where id = '" & Request.Form("id") &"'"

andre fortrækker denne måde:

strSQL = "update respond1 set sp1='" & Request.Form("r1") & "', "
strSQL = strSQL & "sp2='" & Request.Form("r2") & "', "
strSQL = strSQL & "sp3='" & Request.Form("r3") & "', "
...
Avatar billede plx Nybegynder
20. oktober 2006 - 15:58 #2
Eller lave noget kode som genererer din sql..

strSQL = "update respond1 set "

For i=1 To 50
    strSQL = strSQL & "sp" & i & "='" & Request.Form("r" & i) & "' "
Next

strSQL = strSQL & "where id = '" & Request.Form("id") &"'"
Avatar billede svinget Praktikant
20. oktober 2006 - 16:08 #3
Det virker fint med &_ til at dele linien med - takker.

Idéen med at generere min SQL lyder genial, men jeg får desværre en fejl:

Syntax error (missing operator) in query expression ''5' sp2='5' sp3='5' sp4='5' sp5='1''.
Avatar billede plx Nybegynder
20. oktober 2006 - 16:15 #4
jep, der mangler nogle kommaer

antal = 50

For i=1 To antal
    strSQL = strSQL & "sp" & i & "='" & Request.Form("r" & i) & "' "
    If i < antal Then strSQL = strSQL & ", "
Next
Avatar billede svinget Praktikant
20. oktober 2006 - 16:26 #5
Nu virker den sørme - :)
Er der muligt at addere til den? Jeg har spørgsmål fra nr 1 til 44 som ovenstående virker på, men de sidste 5 spørgsmål er tekst felter.
Avatar billede fennec Nybegynder
23. oktober 2006 - 08:35 #6
Du kan sagtens tilføje flere linjer selv.
antal = 44
For i=1 To antal
  if i>1 then
    strSQL = strSQL & ", sp" & i & "='" & Request.Form("r" & i) & "' "
  else
    strSQL = strSQL & "sp" & i & "='" & Request.Form("r" & i) & "' "
  end if 
Next
strSQL = strSQL &", sp45='"& Request.Form("r45") &"'"
strSQL = strSQL &", sp46='"& Request.Form("r46") &"'"
strSQL = strSQL &", sp47='"& Request.Form("r47") &"'"
Avatar billede svinget Praktikant
24. oktober 2006 - 20:59 #7
Takker for hjælpen :) - Poster i begge et svar?
Avatar billede fennec Nybegynder
25. oktober 2006 - 07:46 #8
De må gå til plx...
Avatar billede svinget Praktikant
31. oktober 2006 - 20:25 #9
Plx - poster du et svar :)
Avatar billede svinget Praktikant
01. januar 2007 - 15:36 #10
Svar??? ellers lukker jeg
Avatar billede fennec Nybegynder
02. januar 2007 - 08:11 #11
Giv ham et par dage til. Det er jo ferie for nogen :o)
Avatar billede svinget Praktikant
17. januar 2007 - 09:38 #12
Lukker
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