Fehler beim Überprüfen auf NULL in VBScript
Ich habe Folgendes VBScript in einer Klassischen ASP-Seite:
function getMagicLink(fromWhere, provider)
dim url
url = "magic.asp?fromwhere=" & fromWhere
If Not provider is Nothing Then ' Error occurs here
url = url & "&provider=" & provider
End if
getMagicLink = "<a target='_blank' href='" & url & "'>" & number & "</a>"
end function
Dass ich immer ein "Objekt Erforderlich" Fehlermeldung messager auf die Zeile, die sagt If Not provider Is Nothing Then
.
Entweder den Wert NULL oder ist nicht NULL, also warum bin ich immer diese Fehlermeldung?
Edit: Wenn ich Sie aufrufen, das Objekt, ich pass auf entweder NULL, oder ich gehe in einen string.
InformationsquelleAutor der Frage Daniel Allen Langdon | 2013-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus dem code, es sieht aus wie
provider
ist eine Variante oder eine andere variable und kein Objekt.Is Nothing
ist für Objekte, die nur, noch später werden Sie sagen, es ist ein Wert, der entweder NULL oder NICHT NULL, das behandelt werden würde, indemIsNull
.Versuchen Sie es mit:
Alternativ, wenn das nicht funktioniert, versuchen Sie:
InformationsquelleAutor der Antwort LittleBobbyTables
Sehe ich viel Verwirrung in den Kommentaren.
Null
IsNull()
undvbNull
sind hauptsächlich für die Handhabung von Datenbanken und in der Regel nicht in VBScript. Wenn es nicht ausdrücklich in der Dokumentation des aufrufenden Objekt/Daten, verwenden Sie es nicht.Um zu testen, ob eine variable nicht initialisiert ist, verwenden Sie
IsEmpty()
. Um zu testen, ob eine variable nicht initialisiert ist, oder enthält""
test auf""
oderEmpty
. Um zu testen, ob eine variable ein Objekt ist, verwenden SieIsObject
und zu sehen, wenn dieses Objekt keine Referenz test aufIs Nothing
.In Ihrem Fall, Sie wollen zunächst testen, ob die variable ist ein Objekt, und dann sehen, ob die variable
Nothing
denn wenn es nicht ein Objekt, bekommt man das "Objekt Erforderlich" Fehlermeldung, wenn Sie test aufNothing
.snippet-mix and match in deinem code:
InformationsquelleAutor der Antwort AutomatedChaos
Werde ich fügen Sie einfach ein Leerzeichen ("") an das Ende der variable und machen Sie den Vergleich. Sowas wie unten sollte funktionieren, auch wenn die variable null ist. Sie können auch schneiden Sie die Variablen nur für den Fall von Räumen.
InformationsquelleAutor der Antwort ian0411