/ 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
Uigennemskuelig if sætning !
Fra : Uffe S. Callesen


Dato : 04-12-02 12:30

Jeg har skrevet en lille bid ASP kode som sammensætter et SQL statement
afhængig af den nuværende måned.

If Month(today) = (Request.QueryString("month")) or Month(today) >
(Request.QueryString("month")) then
sql = "SELECT Dag, Maaned, Aar, Tidspunkt, Titel, Sted, Beskrivelse,
Arrangoer FROM Tabel1 WHERE Aar='" & YEAR(now) & "'" & " AND Maaned='" &
Request.QueryString("month") & "'" & " ORDER BY Dag ASC"

else

sql = "SELECT Dag, Maaned, Aar, Tidspunkt, Titel, Sted, Beskrivelse,
Arrangoer FROM Tabel1 WHERE Aar='" & YEAR(now)+1 & "'" & " AND Maaned='" &
Request.QueryString("month") & "'" & " ORDER BY Dag ASC"

end if


Det ser lidt uoverskuligt ud - men det virker - DELVIST ! Den første del af
If sætningen If Month(today) = (Request.QueryString("month")) Bliver nemlig
aldrig sand - det samme gælder for Month(today) >
(Request.QueryString("month"))

På trods af at siden kaldes med
http://blablabla/aktivbuilt.asp?menu=1&month=12 (Altså et link der skal
danne et SQL statement der passer til den tolvte måned)

Hvis jeg som en test udskriver værdien af Request.QueryString("month")
returneres værdien 12 - altså ganske som den bør. Hvis jeg omskriver If
sætningen således

If Month(today) = 12 or Month(today) > 12

Så virker det..... Iøvrigt har jeg istedet for Month(today) forsøgt med
Month(now) - samme resultat og med

<% strDate = Now() %>
....

Month(strDate)

HJÆLP !!!!!!!!!!!!!



 
 
Jens Gyldenkærne Cla~ (04-12-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 04-12-02 12:40

Uffe S. Callesen skrev:


> If Month(today) = (Request.QueryString("month")) or
> Month(today) >
> (Request.QueryString("month"))

Hvorfor skriver du ikke bare:

If Month(today) >= Request.Querystring("month") Then

Hvis det ikke virker ville jeg udskrive værdierne af begge sider af
udtrykket (Response.write Month(today), Response.write
Request.Querystring("month") )


> sql = "SELECT Dag, Maaned, Aar, Tidspunkt, Titel, Sted,
> Beskrivelse,
> Arrangoer FROM Tabel1 WHERE Aar='" & YEAR(now) & "'" & " AND
> Maaned='" & Request.QueryString("month") & "'" & " ORDER BY
> Dag ASC"

Er Aar og Maaned tekstfelter? Hvis ikke skal du fjerne
anførselstegnene omkring værdierne.

Det ville i øvrigt være mere effektivt samt mere overskueligt hvis
du lagde værdien af Request.Querystring("month") over i en
variabel.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Uffe S. Callesen (04-12-2002)
Kommentar
Fra : Uffe S. Callesen


Dato : 04-12-02 12:48

Fine forslag Jens - men de har intet med problemstillingen at gøre

Kan det være et problem med datatyperne på hver side af lighedstegnet ?

Har iøvrigt forsøgt at smide det over i en variabel - samme resultat !



Jens Gyldenkærne Cla~ (04-12-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 04-12-02 13:02

Uffe S. Callesen skrev:

> Fine forslag Jens - men de har intet med problemstillingen at
> gøre

Tja - det gør sætningen lettere at læse og dermed også lettere at
fejlfinde. Har du prøvet forslaget? (det tager ikke lang tid at
ændre).


> Kan det være et problem med datatyperne på hver side af
> lighedstegnet ?

Måske. Prøv at lave et cast på begge sider - fx med Cint eller
Cstr.

Har du i øvrigt prøvet at skrive værdierne ud som jeg foreslog?
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Uffe S. Callesen (04-12-2002)
Kommentar
Fra : Uffe S. Callesen


Dato : 04-12-02 22:52

> Tja - det gør sætningen lettere at læse og dermed også lettere at
> fejlfinde. Har du prøvet forslaget? (det tager ikke lang tid at
> ændre).

Jeps afprøvet :)


> > Kan det være et problem med datatyperne på hver side af
> > lighedstegnet ?
>
> Måske. Prøv at lave et cast på begge sider - fx med Cint eller
> Cstr.

Tænkte nok fejlen lå der et sted Virker efter at jeg cast'er værdien fra
url'en til integer.

> Har du i øvrigt prøvet at skrive værdierne ud som jeg foreslog?

Ikke forstået - hvis du tænker på selve opbygningen af SQL statement'et skal
der intet ændres der.

Tak for hjælpen !

/Uffe



Jens Gyldenkærne Cla~ (05-12-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 05-12-02 12:58

Uffe S. Callesen skrev:

>> Måske. Prøv at lave et cast på begge sider - fx med Cint
>> eller Cstr.
>
> Tænkte nok fejlen lå der et sted Virker efter at jeg
> cast'er værdien fra url'en til integer.

O.k.

>> Har du i øvrigt prøvet at skrive værdierne ud som jeg
>> foreslog?
>
> Ikke forstået - hvis du tænker på selve opbygningen af SQL
> statement'et skal der intet ændres der.

Nej, jeg tænkte på venstre og højre side af dit
sammenligningsudtryk (i forkortet udgave: "Month(today) >=
Request.Querystring("month")")
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste