Ich unterstütze einige klassische ASP-Seiten, von denen eine das Objekt conn verwendet und wiederverwendet und entweder bei Beendigung der ASP-Seite oder unmittelbar bevor die Seite auf eine andere Seite umleitet .
%Vor% Ich habe festgestellt, dass bei einer Umleitung ein Serverfehler direkt an der Zeile conn.Close
, Microsoft VBScript-Laufzeitfehler '800a01a8' Objekt erforderlich auftritt. Ich denke, es gibt keinen Grund, warum diese Linie mehr als einmal ausgeführt wird, aber um sicher zu gehen, habe ich die Funktion neu geschrieben.
Aber ich bekomme immer noch genau diesen Fehler, jetzt in der Zeile if(not (conn Is Nothing))
!! Ich dachte, der Zweck von Is Nothing
wäre, einen Test zu machen, bevor der Variablenname conn verwendet wird, um genau zu verhindern, dass der Fehler 'object required' auftritt, aber der Test den gleichen Fehler verursacht.
Welchen anderen Test kann ich verwenden, um sicherzustellen, dass conn nicht referenziert wird, wenn es bereits auf Nothing gesetzt wurde?
dim myObject : Set myObject = Nothing
. (*) Nicht wirklich bei der Initialisierung, weil die Dims behandelt werden, bevor eine Routine startet, aber wenn Sie alle Ihre Dims an der Spitze einer Routine setzen, wird es praktisch gleich sein.
Verwenden Sie die Funktion IsNothing
. Sie sollten auch überprüfen, ob es ein Objekt ist.
Wenn ich das sage, würde ich es so machen, da es nichts schadet, wenn man eine Variable auf nichts setzt.
%Vor% Noch wichtiger ist jedoch, dass conn
für Ihre Subroutine nicht im Bereich liegt. Sie sollten es wahrscheinlich als Parameter übergeben.
Tags und Links vbscript asp-classic