/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
To spørgsmål - fem seneste og include
Fra : Henrik


Dato : 22-04-02 10:25


Hej,

Jeg har to problemer.

1) Hvordan laver jeg en stump kode, så siden viser de fem seneste records i
tabellen?

2) Når jeg bruger denne include-sætning:

If Request.QueryString("area") = "Alle" then
strSQL = "Select * From Medier Order by Navn"

ElseIf Request.QueryString("area") <> "" then
strSQL = "Select * From Medier Where Area = '" &
Request.Querystring("area") & "' Order by Navn"

Set rs = Conn.Execute(strSQL)
....

Else
Response.Write("<b>Vælg et område:</b>")

End if

når den aldrig ned til Set rs osv., hvis area=Alle, fordi den tror det hører
med til ElseIf-sætningen? Jeg tror der skal en End ind, men så virker Else
ikke?


På forhånd tak til det kloge hovede, der kan overskue problemet.


Henrik



 
 
Jørn Andersen (22-04-2002)
Kommentar
Fra : Jørn Andersen


Dato : 22-04-02 11:49

On Mon, 22 Apr 2002 11:25:10 +0200, "Henrik" <h@enr.ik> wrote:

>1) Hvordan laver jeg en stump kode, så siden viser de fem seneste records i
>tabellen?

SELECT TOP 5 feltnavn
FROM tabelnavn
ORDER BY feltnavn ASC|DESC
(hvis det er en MS Access database)

>2) Når jeg bruger denne include-sætning:

- som ikke er en include, men blot en If

>If Request.QueryString("area") = "Alle" then
>strSQL = "Select * From Medier Order by Navn"
>
>ElseIf Request.QueryString("area") <> "" then
>strSQL = "Select * From Medier Where Area = '" &
>Request.Querystring("area") & "' Order by Navn"
>
>Set rs = Conn.Execute(strSQL)
>...
>
>Else
>Response.Write("<b>Vælg et område:</b>")
>
>End if
>
>når den aldrig ned til Set rs osv., hvis area=Alle, fordi den tror

Det er ikke noget den "tror" - sådan er det :)

>det hører
>med til ElseIf-sætningen? Jeg tror der skal en End ind, men så virker Else
>ikke?

Du kan fx dele den op:
strSQL = ""

If Request.QueryString("area") = "Alle" then
strSQL = "Select * From Medier Order by Navn"

ElseIf Request.QueryString("area") <> "" then
strSQL = "Select * From Medier Where Area = '" &
Request.Querystring("area") & "' Order by Navn"
End if

If strSQL <> "" Then
Set rs = Conn.Execute(strSQL)
Else
Response.Write("<b>Vælg et område:</b>")
End if


Good luck,
Jørn


--
Jørn Andersen,
Brønshøj

Jesper Stocholm (22-04-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 22-04-02 12:12

Jørn Andersen wrote in news:bbq7cu0d0b66udj9vbdq9g96ljdacvk6j0@4ax.com:

> On Mon, 22 Apr 2002 11:25:10 +0200, "Henrik" <h@enr.ik> wrote:
>
> strSQL = ""
>
> If Request.QueryString("area") = "Alle" then
> strSQL = "Select * From Medier Order by Navn"
>
> ElseIf Request.QueryString("area") <> "" then
> strSQL = "Select * From Medier Where Area = '" &
> Request.Querystring("area") & "' Order by Navn"
> End if
>
> If strSQL <> "" Then
> Set rs = Conn.Execute(strSQL)
> Else
> Response.Write("<b>Vælg et område:</b>")
> End if
>

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 = " ...
END SELECT

if strSQL = "" then
   ...
else
   ...
end if

:)

--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|

Jørn Andersen (22-04-2002)
Kommentar
Fra : Jørn Andersen


Dato : 22-04-02 12:45

On Mon, 22 Apr 2002 11:11:38 +0000 (UTC), Jesper Stocholm
<spam200204@stocholm.dk> wrote:

>og her ville jeg personligt vælge en SELECT/CASE-struktur ... dvs

Smag og behag ... :)
Det er blot min erfaring, at mange har sværere ved at *skrive* i
SELECT CASE "format", selv om de oftest er lettere at *læse* ...

Mvh. Jørn


--
Jørn Andersen,
Brønshøj

Henrik (22-04-2002)
Kommentar
Fra : Henrik


Dato : 22-04-02 13:04

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




Jesper Stocholm (22-04-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 22-04-02 13:28

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 :|

Jakob Møbjerg Nielse~ (22-04-2002)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 22-04-02 13:36

> CASE ""
> strSQL = " ...

Det skal være:

CASE else
strSQL = "Select * From Medier Where Area = '" &
Request.Querystring("area") & "' Order by Navn"

Og husk noget error handling.

--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
| -- Terry Pratchett, Reaper Man



Henrik (22-04-2002)
Kommentar
Fra : Henrik


Dato : 22-04-02 13:30

> SELECT TOP 5 feltnavn
> FROM tabelnavn
> ORDER BY feltnavn ASC|DESC
> (hvis det er en MS Access database)

Tak for hjælpen. Jeg kan imidlertid ikke få ovenstående til at virke?

SELECT TOP 5 Navn FROM Medier ORDER BY Navn

Er dette den rigtige måde at skrive det på? Efter eksemplet ja - men jeg får
fejlen

error '80020009'
Exception occurred.



Henrik




Henrik Jensen (23-04-2002)
Kommentar
Fra : Henrik Jensen


Dato : 23-04-02 05:38

> Tak for hjælpen. Jeg kan imidlertid ikke få ovenstående til at virke?
>
> SELECT TOP 5 Navn FROM Medier ORDER BY Navn

Prøv at smid ASC eller DESC i enden af den alt efter hvordan den skal
sortere... så burde det virke

\Henrik



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste