Tuesday, August 30, 2011

How to find DataType of a Variable with VBScript?

When you are validating application using our tool QTP, there will be scenarios to check the displayed value in the field is numeric/text/date etc,.The data type of a variable can be identified in two vbscript built-in functions.

1. Vartype
2. Typename

Vartype returns a numeric value indicating the sub datatype of a variable.

The below table contains return values that indicate respective subtypes.
Return Value
SubDatatype
Description
0
vbEmpty
Empty (uninitialized)
1
vbNull
Null (no valid data)
2
vbInteger
Integer
3
vbLong
Long integer
4
vbSingle
Single-precision floating-point number
5
vbDouble
Double-precision floating-point number
6
vbCurrency
Currency
7
vbDate
Date
8
vbString
String
9
vbObject
Automation object
10
vbError
Error
11
vbBoolean
Boolean
12
vbVariant
Variant (used only with arrays of Variants)
13
vbDataObject
A data-access object
17
vbByte
Byte
8192
vbArray
Array

Ex:
Dim x
x=10
msgbox vartype(x) 'Returns 2
In the above table 2 indicates vbInteger datatype.So x is an integer type.

Typename directly returns the name of the Sub Datatype of a variable.
SubDatatype
Description
Byte
Byte value
Integer
Integer value
Long
Long integer value
Single
Single-precision floating-point value
Double
Double-precision floating-point value
Currency
Currency value
Decimal
Decimal value
Date
Date or time value
String
Character string value
Boolean
Boolean value; True or False
Empty
Unitialized
Null
No valid data
< object type >
Actual type name of an object
Object
Generic object
Unknown
Unknown object type
Nothing
Object variable that doesn't yet refer to an object instance
Error
Error


Ex:
Dim x
x=10
msgbox typename(x)  'Returns “Integer”

There are some more VBScript Built-in functions to find whether a variable datatype is specific datatype or not.

IsArray -- Returns a Boolean value indicating whether a variable is an array or not.
IsDate -- Returns a Boolean value indicating whether an expression can be converted to a date.
IsEmpty -- Returns a Boolean value indicating whether a variable has been initialized.
IsNull -- Returns a Boolean value that indicates whether an expression contains no valid data (Null).
IsNumeric -- Returns a Boolean value indicating whether an expression can be evaluated as a number.
IsObject -- Returns a Boolean value indicating whether an expression references a valid Automation object.

Built in functions are available for only these datatypes. You can write built function for every datatype like below…
'@@@@@@@@@@@@@@@@@@@@@@
Function IsString(oValue)
  If vartype(oValue)=8 then
    IsString=true
  Else
    IsString=False
  End If
End Function
'@@@@@@@@@@@@@@@@@@@@@@

No comments: