Frågan 20 maj 2003 10:37 #1 Problem:
Min server hänger sig när jag kör denna kod:
t.ex. så är str_startdate = 2003-05-13 samt str_endate = 2003-05-30
Jag är säkert ute o cycklar.
nån som har nån idé ?
Dim str_startdate, str_enddate, str_count
str_enddate = Request.Form("enddate")
str_count = 0
str_startdate = DateAdd("d", str_count, ""& Request.Form("startdate") &"")
Do Until str_startdate = str_enddate
Response.Write(""& str_count &"<BR>")
str_count = str_count + 1
Loop
Mvh
Martin
@nders Medlem sedan juni 2000 32 967 inlägg Du ändrar ju aldrig startdate inne i loopen, så värdet ändras ju aldrig. Sen undrar jag vad du har alla blankrader till? De försvårar läsning av koden. Sen kan det vara najs att indentera koden också, så man vet vad som hör till vad.Och varför lägger du till en tom sträng före och efter Request.Form("startdate") ?
Dim str_startdate, str_enddate, str_count
str_enddate = Request.Form("enddate")
str_count = 0
Do Until str_startdate = str_enddate
str_startdate = DateAdd("d", str_count, CDate(Request.Form("startdate")))
Response.Write(""& str_count &"<BR>")
str_count = str_count + 1
Loop
Engine^ Medlem sedan dec. 2000 3 887 inlägg Fel ordning på saker och ting...
Dim str_startdate, str_enddate, str_count
str_count = 0
str_enddate = Request.Form("enddate")
str_startdate = Request.Form("startdate")
Do Until str_startdate = str_enddate
Response.Write(""& str_count &"<BR>")
DateAdd("d", 1, str_startdate)
str_count = str_count + 1
Loop
Tjusigt ;)
Ska tänka på det nästa gång. Tack för tipsen och ett snabbt svar.
Mvh
Martin
Engine ?
DateAdd("d", 1, str_startdate)
Där 1:an e ska str_count stå va ?
Mvh
Martin
Engine^ Medlem sedan dec. 2000 3 887 inlägg Nja, då blir felräkning... str_startdate ökas först med 1, sedan 2, 3 och så vidare.
str_count str_startdate
1 : 2003-05-15
2 : 2003-05-17
3 : 2003-05-20
.
.
.
OK, fattar det nu.. tänkte lite annurlunda bara. Nu får jag detta otrevliga meddelande när jag kör med din kod
Microsoft VBScript compilation (0x800A0414)
på denna rad:
DateAdd("d", 1, str_startdate)
Mvh
Martin :)
Engine^ Medlem sedan dec. 2000 3 887 inlägg Cannot use parentheses when calling a Sub...
Lösningen till det är nog att ta bort paranteserna från DateAdd. Alltså: DateAdd "d", 1, str_startdate
Fungerar inte loopen hänger sig igen...
?
@nders Medlem sedan juni 2000 32 967 inlägg
Engine^ skrev:
Cannot use parentheses when calling a Sub...
Lösningen till det är nog att ta bort paranteserna från DateAdd. Alltså: DateAdd "d", 1, str_startdate
Man kan inte bara bara skriva så. DateAdd() är en funktion som returnerar ett värde, därför måste man också ta emot det.
dteEttDatum = DateAdd ("d", 1, str_startdate)
Hur ser din kod ut nu?
Som Engine´s:
Dim str_startdate, str_enddate, str_count
str_count = 0
str_enddate = Request.Form("enddate")
str_startdate = Request.Form("startdate")
Do Until str_startdate = str_enddate
Response.Write(""& str_count &"<BR>")
DateAdd("d", 1, str_startdate)
str_count = str_count + 1
Loop
Engine^ Medlem sedan dec. 2000 3 887 inlägg Ajaj... tur att det en snabelanders för felkorrigering ;)
Dim str_startdate, str_enddate, str_count
str_count = 0
str_enddate = Request.Form("enddate")
str_startdate = Request.Form("startdate")
Do Until str_startdate = str_enddate
Response.Write(""& str_count &"<BR>")
[b]str_startdate = DateAdd("d", 1, str_startdate)[/b]
str_count = str_count + 1
Loop
helt stört:
Dim str_startdate, str_enddate, str_count
str_startdate = 2003-05-25
str_enddate = 2003-05-29
str_count = 0
Do Until str_startdate = str_enddate
Response.Write(""& str_count &"<BR>")
str_startdate = DateAdd("d", 1, str_startdate)
str_count = str_count + 1
Loop
Denna kod hänger loopen också..
Engine^ Medlem sedan dec. 2000 3 887 inlägg Måste du inte innesluta datum med # i VBScript?
Som du skrev tror jag det tolkas som 2003 - 5 - 25 = 1973, således tolkas ditt stoppdatum som ett datum tidigare än ditt startdatum. Loopen kommer inte fram på ett bra tag med andra ord.
@nders Medlem sedan juni 2000 32 967 inlägg
Engine^ skrev:
Måste du inte innesluta datum med # i VBScript?
Som du skrev tror jag det tolkas som 2003 - 5 - 25 = 1973, således tolkas ditt stoppdatum som ett datum tidigare än ditt startdatum. Loopen kommer inte fram på ett bra tag med andra ord.
Det är korrekt. Man kan använda antingen # runt datum, eller Cdate("2003-05-23"), för att det ska hanteras som datumtyp, men absolut inte utan någonting runt.
Mvh
Allt fungerar nu med följande kod:
Dim str_startdate, str_enddate, str_count
str_startdate = Cdate("2003-05-23")
str_enddate = Cdate("2003-05-28")
str_count = 0
Do Until str_startdate = str_enddate
Response.Write(""& str_count &"<BR>")
str_startdate = DateAdd("d", 1, str_startdate)
str_count = str_count + 1
Loop
Tack för all hjälp ! :)
Mvh
Martin