ASP classique: j'obtiens une erreur d'incompatibilité de type où je ne devrais pas
J'ai une fonction pour transformer le HTML du texte codé en arrière dans le HTML. Il fonctionne très bien normalement, mais pour une raison quelconque, j'essaie de l'utiliser sur du texte d'aujourd'hui, et obtenez l'erreur suivante:
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'UnChkString'
/manage/solutions_delete.asp, line 22
La ligne, je suis à l'aide de cette fonction est:
<%= UnChkString(solution_desc) %>
La solution_desc
variable est:
<p>Here is a description of what this solution is all about.</p>
Le champ de la base de données est en tirant le solution_desc
de est un champ de texte.
Mon UnChkString fonction est:
Function UnChkString(string)
UnChkString = Replace(string,"[%]","%")
UnChkString = HTMLDecode(UnChkString)
End Function
La HTMLDecode fonction est:
Function HTMLDecode(sText)
Dim I
sText = Replace(sText, "&" , Chr(38))
sText = Replace(sText, "&" , "&")
sText = Replace(sText, """, Chr(34))
sText = Replace(sText, "’", Chr(39))
sText = Replace(sText, "<" , Chr(60))
sText = Replace(sText, ">" , Chr(62))
sText = Replace(sText, " ", Chr(32))
For I = 1 to 255
sText = Replace(sText, "&#" & I & ";", Chr(I))
Next
HTMLDecode = sText
End Function
MODIFIER
J'ai même essayé:
<%= UnChkString(CStr(solution_desc)) %>
avec pas de chance.
La ligne est la ligne 22?
Peut-être que vous êtes l'obtention de
La chaîne que j'ai posté est ce que je reçois de la base de données. Qu'est ce qui est écrit si je n'ai pas essayer de l'exécuter par le biais de la fonction.
Très étrange. Je peux le faire tourner normalement sur ma machine, pas d'erreurs!
<%= UnChkString(solution_desc) %>
Peut-être que vous êtes l'obtention de
NULL
de la DB? L'erreur se produire avec l'exemple de la chaîne que vous avez posté?La chaîne que j'ai posté est ce que je reçois de la base de données. Qu'est ce qui est écrit si je n'ai pas essayer de l'exécuter par le biais de la fonction.
Très étrange. Je peux le faire tourner normalement sur ma machine, pas d'erreurs!
OriginalL'auteur James | 2012-03-08
Vous devez vous connecter pour publier un commentaire.
Parfois de son mieux pour viens de re-lire l'erreur très soigneusement. Considérer ce morceau de VBS:
Depuis
DoStuff
n'est pas définie, ni est-il unOption Explicit
j'obtiens:Votre erreur est:
Type mismatch: 'UnChkString'
. Ses pas se plaindre du paramètre passé sa se plaindreUnChkString
lui-même. Ma conjecture est que vous avez commis le plus de base de VBScript programmming fait une grosse bêtise, vous n'avez pas deOption Explicit
en haut de votre code. C'est un must.Pour des raisons peu claires forme le code que vous avez posté jusqu'à présent, le code à l'endroit que
<%= UnChkString(solution_desc) %>
est exécuté par le moteur de script n'a pas une fonctionUnChkString
, d'où l'erreur que vous voyez. Je soupçonne que l'inclusion deOption Explicit
révèle le problème (ainsi que de vous forcer àDim
toutes vos variables).OriginalL'auteur AnthonyWJones
Je suis d'accord avec Anthony est d'avis que vous devriez être en utilisant l'Option Explicit en haut de vos pages ASP.
Je soupçonne que la cause est manquant ou incorrect d'inclure le fichier
Je peux reproduire cela avec le code ci-dessous où j'ai supprimer
ou malform l'appel en le modifiant pour
OriginalL'auteur Nicholas Murray
Remplacer
string
àvStr
et légèrement modifié.Essayer de cette façon:-
Toujours le même msg d'erreur ou différents msg
Même message d'erreur.
OriginalL'auteur Siva Charan
Afin de résoudre ce problème, Vous devez d'abord vérifier si la chaîne a le char, c'est..
Et..
Qui devrait résoudre votre
Type Mismatch
question. Ne me demandez pas pourquoi, ça fonctionne, tout simplement.OriginalL'auteur Control Freak