webForumDet fria alternativet
Logga in / Bli medlem

Type Miss Match

ASP

8 svar · 422 visningar · startad av Eclipse

Medlem sedan juli 20003 825 inlägg
Trådstart#1

Den här koden ger det här felet! Om det inte är varType() 2 eller 3, vad är det då??

myTemp = 333
response.write varType(myTemp) & "<BR>"

'response.write "antal dagar på 18 månader: " & dateDiff("d", date(), dateAdd("m",18,date()))    & "<BR><BR>"

DIM intNrOfDays, arrMyDate
intNrOfDays = dateDiff("d", date(), dateAdd("m",18,date()))
response.write varType(intNrOfDays) & "<BR>"
intNrOfDays = Cint(intNrOfDays)
response.write varType(intNrOfDays) & "<BR>"
[b]arrMyDate(intNrOfDays)[/b]

2
3
2

Microsoft VBScript runtime error '800a000d'

Type mismatch

/v1/load_public_menus.asp, line 27

***
Rad 27 markerad.

Medlem sedan juni 200032 967 inlägg
#2

Vad är det du försöker göra med den fetmarkerade raden?
Det saknas något, ex. Response.write. Som koden är skriven nu försöker du kalla på en funktion som heter arrMyDate, och ge den parametern intNrOfDays.

Edit: Om du vill kan du använda TypeName() istället för VarType(), och då får du se i klartext vad det är för typ.

mvh

Medlem sedan feb. 20032 027 inlägg
#3

Re: Type Miss Match

Eclipse skrev:

Den här koden ger det här felet! Om det inte är varType() 2 eller 3, vad är det då??

myTemp = 333
response.write varType(myTemp) & "<BR>"


'response.write "antal dagar på 18 månader: " & dateDiff("d", date(), dateAdd("m",18,date()))    & "<BR><BR>"

DIM intNrOfDays, arrMyDate
intNrOfDays = dateDiff("d", date(), dateAdd("m",18,date()))
response.write varType(intNrOfDays) & "<BR>"
intNrOfDays = Cint(intNrOfDays)
response.write varType(intNrOfDays) & "<BR>"
[b]arrMyDate(intNrOfDays)[/b]

2
3
2

Microsoft VBScript runtime error '800a000d'

Type mismatch

/v1/load_public_menus.asp, line 27

***
Rad 27 markerad.

är inte O-et en nolla där?

Medlem sedan juli 20003 825 inlägg
#4

Webbis ??

Anders,

Det fungerar att skriva
myArray(23)
DIM myArray(23)

Medlem sedan juli 20003 825 inlägg
#5

Grrr.....

'DIM arrMyDate(546)' 546
DIM arrMyDate(cInt(intNrOfDays))' 546

Den avmarkerade fungerar!!

Microsoft VBScript compilation error '800a0402' 

Expected integer constant 

/v1/load_public_menus.asp, line 22 

DIM arrMyDate(cInt(intNrOfDays))' 546
--------------^
Medlem sedan feb. 200112 078 inlägg
#6

Du kan inte deklarera en array med ett variabelt antal index i VBScript. Du måste använda ReDim.

Dim myArray(1)
ReDim Preserve myArray(intNrOfDays)

Preserve ser till att eventuella poster i arrayen inte raderas när den ändrar storlek.

Medlem sedan juli 20003 825 inlägg
#7

Fett...!!

***
DIM intNrOfDays
intNrOfDays = dateDiff("d", date(), dateAdd("m",18,date()))
response.write typeName(intNrOfDays) & "<BR>"
response.write intNrOfDays & "<BR>"
intNrOfDays = CInt(intNrOfDays)
response.write typeName(intNrOfDays) & "<BR>"
response.write intNrOfDays & "<BR>"
DIM arrMyDate(1)' 546
'ReDim Preserve arrMyDate(CInt(intNrOfDays))
ReDim Preserve arrMyDate(intNrOfDays)

Long
546
Integer
546

Microsoft VBScript runtime error '800a000a' 

This array is fixed or temporarily locked 

/v1/load_public_menus.asp, line 24
Medlem sedan juni 200032 967 inlägg
#8

Eclipse skrev:

Det fungerar att skriva
myArray(23)

Hmm, vad menar du att den koden ska göra?

Det är möjligt att du har rätt, men jag förstår inte bara. :)

mvh

Medlem sedan juli 20003 825 inlägg
#9

Fasen, jag blir knäpp på detta!

Kanske jag gör fel???

Jag loopar för att få arrayer, en array för varje dag i 1.5 år (= 18 månader).

application(2004-09-06)
application(2004-09-07)
application(2004-09-08)
application(2004-09-09)
application(2004-09-10) osv....

Jag vill att varje application ska innehålla lite data.

***
OK, vi skiter i det.

Vid närmare eftertanke kanske en array inte behövs...

Nu undrar jag hur man kskriver en SQL sats med bara två COUN(*) i?

'SQL = "SELECT " _
'& " (SELECT COUNT(*) FROM [roomBooking] rb WHERE rb.dteDate = #" & dteMyDate & "#) " _
'& ", (SELECT COUNT(*) FROM [event] e WHERE e.dteCreated = #" & dteMyDate & "# ); "

SQL = "SELECT u.intID " _
& ", (SELECT COUNT(*) FROM [roomBooking] rb WHERE rb.dteDate = #" & dteMyDate & "#) " _
& ", (SELECT COUNT(*) FROM [event] e WHERE e.dteCreated = #" & dteMyDate & "# ) " _
& " FROM users u;"

384 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
129 ms — deklarationer (db)
120 ms — hämta statistik (db)
132 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)