17. marts 2004 - 11:07Der er
14 kommentarer og 1 løsning
Out of range i for-løkke med arrays
Hejsa Jeg får følgende fejl: Microsoft VBScript runtime error '800a0009' Subscript out of range: '[number: 2]'
Den siger fejlen ligger i linjen arrNewDate(i) = temp(2)&"-"&temp(1)&"-"&temp(0)
Er der nogen der kan hjælpe mig med at få det til at virke? Nedenstående er et udsnit af den kode der giver problemer. _________________________________________________________________
varCount = int(rsCount("rows")) Response.write("varCount = " & varCount) redim arrDate(varCount) redim arrNewDate(varCount) for i=1 to ubound(arrDate) temp = split(arrDate(i),"-") arrNewDate(i) = temp(2)&"-"&temp(1)&"-"&temp(0) next
Nu har jeg følgende kode. Jeg får samme fejl som før. Microsoft VBScript runtime error '800a0009' Subscript out of range: '[number: 2]' Det er stadig linjen arrNewDate(i) = temp(2)&"-"&temp(1)&"-"&temp(0) den angiver som fejlkilden.
du gør noget total mærkeligt, som jeg ikke kan gennemskue, men det er stadig galt med arrDate(i). Hvilke værdier får arrDate(1), arrDate(2) også vidre i:
do while not rs.EOF arrDate(i) = rs("date") rs.movenext loop
Hvad er det overhoved du vil???? Jeg tror nemlig at du er startet helt forkert...
Alright... Jeg har en MySQL database med en række datoer jeg trækker ud. Disse datoer er i et forkert format, nemlig MM/DD/YYYY. De skal ændres til formatet DD-MM-YYYY (Bemærk ændringen fra / til -).
Lige et kort indskudt spørgsmål: Kan det passe at formatet på datoen i databasen er YYYY-MM-DD, men at når jeg har trukket det ud med en select-sætning og udskriver det via ASP så er formatet MM/DD/YYYY?
hvis det er datofelter i databasen bruges serverens format til at vise med. Prøv lige at sætte en session.lcid = 1030 i toppe af siden. Så skulle det gerne være det rigtige format der kommer ud...
Når jeg trækker det ud fra serveren ændrer formatet sig. I databasen står det som YYYY-MM-DD men når jeg printer det står det som MM/DD/YYYY. Ergo må jeg splitte på /
Haha!!!! Sådan fennec :) Det virker perfekt. Og jeg slipper for at bytte om på alting med split. Tusind tak :)
Nu er der bare lige en anden ting, måske det skal være et nyt spørgsmål. Men når jeg skal indsætte formatet i databasen, så skal det vel formateres sådan at det har databasens format inden jeg indsætter det, ikke? Kan du lige hurtigt fortælle mig hvordan jeg gør det?
Hvis du er heldig skal du ikke ændre formatet, men det kan du lige tjekke.... ellers skal du have lavet en funktion som kan gøre det for dig. Her kan du gøre brug af indbygget variabler i ASP. Her er en af dem jeg bruger...
Function ConvertToSqlDate(dato) dim SQLYear,SQLMonth,SQLDay SQLYear = Year(dato) SQLMonth = Month(dato) SQLDay = Day(dato) if SQLDay<10 then SQLDay = 0&SQLDay end if if SQLMonth<10 then SQLMonth = 0&SQLMonth end if 'retur YYYYMMDD ConvertToSqlDate = SQLYear&SQLMonth&SQLDay End Function
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.