Die Funktion
VarType liefert Aufschluß über die Art des Inhaltes einer Variable, also den Variablentyp. Zum Beispiel liefert die Funktion
FormatNumber( A ) einen Wert vom Typ String zurück. Dies läßt sich durch folgendes Skript zeigen:
A = 12.45
B = FormatNumber(A,2)
Response.Write VarType(B)
Der angezeigte Wert, den
VarType( B ) liefert, ist 8 für String.
Folgende Werte kann VarType() liefern
| Wert | Beschreibung |
|---|
| 0 (vbEmpty) | Empty (nicht initialisiert) |
| 1 (vbNull) | Null (kein gültiger Inhalt) |
| 2 (vbInteger) | Integer |
| 3 (vbLong) | Long Integer |
| 4 (vbSingle) | Fließkommazahl mit einfacher Genauigkeit |
| 5 (vbDouble) | Fließkommazahl mit doppelter Genauigkeit |
| 6 (vbCurrency) | Währung |
| 7 (vbDate) | Datum |
| 8 (vbString) | String |
| 9 (vbObject) | Automation Object |
| 10 (vbError) | Fehler |
| 11 (vbBoolean) | oolean |
| 12 (vbVariant) | Variant (nur bei Variant Arrays benutzt) |
| 13 (vbDataObject) | Ein Datenobjekt |
| 17 (vbByte) | Byte |
| 8192 (vbArray) | Array |
Anmerkung: Bei Arrays liefert VarType niemals den Wert 8192 (für Array) alleine zurück. Vielmehr wird der Wert zu 8192 hinzu addierte Wert des Variablentypes der Arrayfelder zurückgeliefert. Zum Beispiel wird für ein Array mit Integer Zahlen der Wert 8194 (8192 ""+"" 2 für Integer) angegeben. Ein Spezialfall ist ein Array, das Felder mit verschiedenen Datentypen enthält. In diesem Fall wird der Wert 8204 (8192 + 12 für Variant) zurückgegeben.
Bei Objekten wird bei Abfrage mit VarType der Typ der "Default Property" zurückgegeben. So liefert zum Beispiel folgende Abfrage den Wert 8 (für String) zurück.
Set conn = Server.CreateObject("ADODB.Connection")
Response.Write VarType(conn)Der Grund hierfür liegt in der Tatsache, daß die Default Property für das Connection Objekt die ConnectionString Property ist, und somit obiges Skript gleichbedeutend mit folgendem ist:
Set conn = Server.CreateObject("ADODB.Connection")
Response.Write VarType(conn.ConnectionString)Um nun zu prüfen, ob eine Variable in Objekt enthält, ist die Funktion isObject geeignet. Das folgende Skript prüft ob conn ein Objekt ist, und liefert den Wert "True" zurück, wenn dies zutrifft:
Set conn = Server.CreateObject("ADODB.Connection")
Response.Write isObject(conn)Hingegen liefert natürlich folgendes Skript "False" zurück:
Set conn = Server.CreateObject("ADODB.Connection")
Response.Write isObject(conn.ConnectionString)Ein Beispiel für ein Objekt ohne "Default Property" ist übrigens das FileSystemObject. Das folgende Beispiel liefert also den Wert 9 (für Automation Object) zurück:
Set fs = Server.CreateObject("Scripting.Filesystemobject")
Response.Write VarType(fs)