Henrik wrote in news:S_Sw8.1421$kp3.121576@news010.worldonline.dk:
>> og her ville jeg personligt vælge en SELECT/CASE-struktur ... dvs
>>
>> dim strQ,strSQL
>> strQ = request.querystring("area")
>> strSQL = ""
>> SELECT CASE strQ
>> CASE "Alle"
>> strSQL = " ... "
>> CASE ""
>> strSQL = " ...
>
> Hvad skriver jeg så i:
>
> CASE ""
> strSQL = " ...
>
> Jeg kan ikke rigtig gennemskue det i praksis...
>
Det skal vel være:
dim strQ,strSQL
strQ = request.querystring("area")
strSQL = ""
SELECT CASE strQ
CASE "Alle"
strSQL = "Select * From Medier Order by Navn"
CASE ""
CASE ELSE
strSQL = "Select * From Medier Where Area = '" & Request.Querystring("area") & "' Order by Navn"
END SELECT
if strSQL = "" then
response.write "vælg noget, din klovn :)"
else
Set rs = Conn.Execute(strSQL)
end if
I øvrigt:
Lad være med at bruge *-angivelsen til at hente felter ud af din
database. Det bedre at hente blot de nødvendige felter
ud af din tabel. Ikke alene er det mere optimalt - men du kan
også i din kode læse, hvad de enkelte felter der er i resultatet
hedder ... uden at skulle slå op i din tabel.
Og så er det en lidt mærkelig konditionering du bruger. Jeg vil mene,
at denne kondition (betingelse) giver det samme:
strQ = request.querystring("area")
strSQL = ""
if area = "" then
response.write "vælg noget ..."
else
strSQL = "SELECT Field1,Field2 FROM Table WHERE area = '" & strQ & "' ORDER BY 1"
' her er 1 det første felt i dit resultat.
end if
Med en CASE-struktur giver det:
strQ = request.querystring("area")
strSQL = ""
SELECT CASE strQ
CASE ""
response.write "vælg noget ..."
CASE ELSE
strSQL ="SELECT Field1,Field2 FROM Table WHERE area = '" & strQ & "' ORDER BY 1"
END SELECT
:)
--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|