03. december 2005 - 15:11Der er
8 kommentarer og 1 løsning
Spørgsmål om SELECT
Hej
Jeg har følgende select-sætning: strSQL = "SELECT * FROM begivenheder WHERE" strSQL = strSQL & " " & strYear & "" strSQL = strSQL & " AND (hold LIKE " & Request.QueryString("hold") & ")" strSQL = strSQL & " ORDER By " & strSort & ""
Her er det meningen at der blandt andet kun skal vises ting hvor "hold" er lig med min querystring, i databasen. Et eksempel på min querystrings værdi kunne for eksempel være tallet 3. Nu vil jeg imidlertid også gerne have det sådan at man i databasen for eksempel kan skrive "3, 4" og så bliver denne række fundet hvis min querystring enten er 3 eller 4.
prøv med: strSQL = "SELECT * FROM begivenheder WHERE" strSQL = strSQL & " " & strYear & "" strSQL = strSQL & " AND (hold LIKE %" & Request.QueryString("hold") & "%)" strSQL = strSQL & " ORDER By " & strSort & ""
Synes godt om
Slettet bruger
03. december 2005 - 15:22#2
Det virker ikke... Så får jeg følgende fejl: Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC Microsoft Access Driver] Syntax error in query expression 'AllY=0 AND (hold LIKE %5%)'.
***************.asp, line 344
Men det jeg er ud i er noget med en split-funktion som så kan lave den del af select-sætningen hvor min querystring indgår for hvert komma som er i databasefeltet. Men hvordan kan man eventuelt hente feltet "hold" i databsen uden at man egentligt har udført sætningen?
Det jeg er ude i er noget a la det her, det ville virke hvis bare man kunne hente feltet som hedder hold midt i det hele...:
strSQL = "SELECT * FROM begivenheder WHERE" strSQL = strSQL & " " & strYear & "" flerehold = split(????,",") for i=0 to ubound(flerehold) strSQL = strSQL & " AND (hold LIKE " & flerehold(i) & ")" next strSQL = strSQL & " ORDER By " & strSort & ""
De fire spørgsmålstegn er så det jeg ikke kan...
- Eller skal opgaven gribes an på en helt anden måde?
\Dan
Synes godt om
Slettet bruger
03. december 2005 - 15:29#3
SELECT * FROM begivenheder WHERE" strSQL = strSQL & " " & strYear & "" strSQL = strSQL & " AND hold in(" & Request.QueryString("hold") & ")" strSQL = strSQL & " ORDER By " & strSort
Synes godt om
Slettet bruger
03. december 2005 - 15:33#4
Hej
Nej denne virker desværre heller ikke.
Her får jeg følgende fejlmeddelse: Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
Kan man virkelig ikke lave det med en split-funktion eller lignende?
hvad ned : strSQL = "SELECT * FROM begivenheder WHERE" strSQL = strSQL & " " & strYear & "" strSQL = strSQL & " AND (hold LIKE '%" & Request.QueryString("hold") & "%')" strSQL = strSQL & " ORDER By " & strSort & ""
Synes godt om
Slettet bruger
03. december 2005 - 15:42#7
Nu kan jeg så næsten se at det må være en varchar, så bliver du nødtil at få sat ' ' omkring de enkelte elementer i din querystring parameter sådan her:
hvis du får 3,4 skal det laves om til '3','4' inden du bruger det i
SELECT * FROM begivenheder WHERE" strSQL = strSQL & " " & strYear & "" strSQL = strSQL & " AND hold in(" & Request.QueryString("hold") & ")" strSQL = strSQL & " ORDER By " & strSort
Synes godt om
Slettet bruger
03. december 2005 - 17:11#8
Hej
Mange tak for svarene!
Det var nu det ovenstående eksempel med: strSQL = strSQL & " AND (hold LIKE '%" & Request.QueryString("hold") & "%')" jeg kunne få det til at køre med... Så kan dr_chaos ikke lige smide et svar for point?
Desuden kan jeg sige at "hold" er af datatypen "notat" i databasen...
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.