/ 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
Hjææælp: Type Mismatch
Fra : Jeppe Dige Jespersen


Dato : 13-02-01 09:09

Jeg får en tåbelig og vanvittigt irriterende fejl på en .asp side. Måske er
det
mig, der er tåben.

Siden kaldes med tre parametre i querystring'en:

y, som repræsenterer et årstal (0-99999999)
m, som repræsenterer en måned (1-12)
d, som repræsenterer en dag (1-31)

De tre parametre bruges så i et kald til en COM-komponent funktion, som
blot returnerer en String. Funktionen i komponenten tager tre integers som
argumenter.

<% set mitObjekt = new MinDLL.Klasse %>
<%
=mitObjekt.minFunktion(request.querystring("y"),request.querystring("m"),req
uest.querystring("d")) %>

Problemet er at jeg får en Type Mismatch på selve funktionskaldet. Jeg har
prøvet eksplicit at konvertere de tre querystring-parametre til integers,
men
det hjælper ikke. Jeg har også tjekket at querystring-parametrene faktisk
indeholder noget, hvilket de gør, men jeg får stadig en Type Mismatch.

Det sjove er, at hvis jeg kalder funktionen med hardcodede værdier feks
(2001,2,9) så får jeg ingen fejl.

Kan nogen hjælpe???

Jeppe





 
 
Peter Lykkegaard (13-02-2001)
Kommentar
Fra : Peter Lykkegaard


Dato : 13-02-01 10:50


"Jeppe Dige Jespersen" <jdj@jdj.dk> wrote in message
news:96apua$11d$1@news.inet.tele.dk...
> Jeg får en tåbelig og vanvittigt irriterende fejl på en .asp side. Måske
er
> det mig, der er tåben.

Depends - jeg går ud fra at det ikke er dig der har lavet komponentet?

> Siden kaldes med tre parametre i querystring'en:
> De tre parametre bruges så i et kald til en COM-komponent funktion, som
> blot returnerer en String. Funktionen i komponenten tager tre integers som
> argumenter.

> Det sjove er, at hvis jeg kalder funktionen med hardcodede værdier feks
> (2001,2,9) så får jeg ingen fejl.
>
Jeps - det er en lidt "sjov" fejl - det skyldes at *alle* variabler i
VBScript lever som datatypen variant (undtagen Objekter - her sker der en
konvertering)
Jeg har oplevet fejlen hvor parameter listen til en metode er opbygget med
"ByRef" parameter overførsler, fx komponenter lavet i VB har denne lidt
uheldige egenskab

Laver man en funktion ala
Function strGetAValue(MyValue As String) As String
strGetAValue = MyValue
End Function

Så vil man kunne opleve problemet
Response.Write strGetAValue(strMyString)
Vil give en type mismatch

Der er to løsninger - brug denne hvis det ikke er noget du selv har lavet
Response.Write strGetAValue(CStr(strMyString))

Eller lav funktionen i komponentet således
Function strGetAValue(ByVal MyValue As String) As String
strGetAValue = MyValue
End Function

I dit tilfælde så skal du finde ud af hvilke datatyper
funktionen/komponentet forventer og så lave en eksplicit konvertering -fx

Reponse.Write MinFunction(CInt(MyYear))

mvh/Peter Lykkegaard



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

Månedens bedste
Årets bedste
Sidste års bedste