Is functions
Encyclopedia
Function name | VB .NET | T-SQL | |||
---|---|---|---|---|---|
IsArray |
|||||
IsDate |
|||||
IsDBNull |
|||||
IsEmpty |
|||||
IsError |
|||||
IsMissing |
|||||
IsNothing |
|||||
IsNull |
|||||
IsNumeric |
|||||
IsObject |
|||||
IsReference |
The
Is
functions (also known as data information functions, data inspection functions, or data-testing functions) are a set of functions in Microsoft's Visual Basic 6, Visual Basic for ApplicationsVisual Basic for Applications
Visual Basic for Applications is an implementation of Microsoft's event-driven programming language Visual Basic 6 and its associated integrated development environment , which are built into most Microsoft Office applications...
, VBScript
VBScript
VBScript is an Active Scripting language developed by Microsoft that is modeled on Visual Basic. It is designed as a “lightweight” language with a fast interpreter for use in a wide variety of Microsoft environments...
, and Visual Basic .NET
Visual Basic .NET
Visual Basic .NET , is an object-oriented computer programming language that can be viewed as an evolution of the classic Visual Basic , which is implemented on the .NET Framework...
. Several of them are also provided in Transact-SQL
Transact-SQL
Transact-SQL is Microsoft's and Sybase's proprietary extension to SQL. SQL, often expanded to Structured Query Language, is a standardized computer language that was originally developed by IBM for querying, altering and defining relational databases, using declarative statements...
by the .NET Framework
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
Data Provider for Microsoft SQL Server
Microsoft SQL Server
Microsoft SQL Server is a relational database server, developed by Microsoft: It is a software product whose primary function is to store and retrieve data as requested by other software applications, be it those on the same computer or those running on another computer across a network...
.
What the functions do
The functions are simple data validation and data type checking functions. The data validation functions determine whether it is possible to convert or coerce the data value given as an argument to the function to the type implied by the function name, and return aBoolean
value recording whether it was possible or not. (Note that the actual data conversion functions, such as Oct
throw exceptions if conversion is not possible. The validation functions allow one to test whether a conversion would fail, and change the program's flow of control in an if statement.) True
indicates that conversion would be possible, False
indicates that it would not be. Similarly the type checking functions return a Boolean
recording whether the argument expression is of a particular type.In Transact-SQL, the functions return zero or one rather than
Boolean
values True
and False
.IsArray(name)
- This function determines whether the variable name passed as its argument is an array. Uninitialized arrays will, note, return
False
from this function in Visual Basic .NET. In Visual Basic 6, arrays are not reference types, and an uninitialized array will returnTrue
from this function just like an initialized array.
IsDate(expression)
- This function determines whether the expression passed as its argument can be converted to a variable of type
Date
, or is already of typeDate
. Uninitialized variables that are of typeDate
can of course be converted, despite being uninitialized, so this will always returnTrue
for such variables. Note that strings that contain a day of the week in addition to a date (e.g."Sat, October 12, 2010"
) will return a failure result. In VBScript and Visual Basic .NET, the conversion process employs the locale settings of Microsoft Windows, meaning that what may parse as a date on one system, configured to use one locale, may fail to parse as a date on another system, configured to use a different locale.
IsDBNull(expression)
- This function determines whether the expression passed as its argument evaluates to
System.DBNull.Value
. This is equivalent to Visual Basic 6'sIsNull
function. Note that it is not possible to directly compare an expression for equality toSystem.DBNull
, because any expression of the formx = DbNull
will evaluate toDbNull
simply because it contains a null.IsDBNull
is the only way to test for equality toSystem.DBNull
.
IsEmpty(expression)
- This function determines whether the expression passed as its argument is an uninitialized variant. Note that an uninitialized variant is distinct from a variant that has been initialized to hold
Null
. Although the function takes an expression, rather than simply a variable name, any expression that isn't simply a variable name is considered not to be an uninitialized variant. This function was available in Visual Basic 6, but has been superseded in Visual Basic .NET by theIsNothing
function. In VBScript, if a variant is assignedNothing
, this function still returnsFalse
.
IsError(expression)
- This function, in Visual Basic .NET, determines whether the expression passed as its argument is an exception object, i.e. an object of the
System.Exception
class or one of its subclasses. In Visual Basic 6, the function tests whether the expression is a variant with the specialvbError
subtype.
IsMissing(name)
- This function determines whether the variable name passed as its argument is an optional argument that was not passed to a function by its caller. It returns
True
only of the variable is a variant that has not been initialized. This function only exists in Visual Basic 6. In Visual Basic .NET, optional parameters are required to have default initializers, and the function no longer exists.
IsNothing(expression)
- This function determines whether the expression passed as its argument evaluates to
Nothing
. It is a simple library function (comprising just 4 CILCommon Intermediate LanguageCommon Intermediate Language is the lowest-level human-readable programming language defined by the Common Language Infrastructure specification and is used by the .NET Framework and Mono...
instructions) which can itself be written in Visual Basic as:
Return (Expression Is Nothing)
End Function The effect of this is to return
False
for all value (non-reference) expressions, because they will be wrapped up, as part of the function call, into objects, which will by their very natures, not be null objects. To avoid this behaviour, one can use the IS
operator to compare an object directly to Nothing
, writing expression
rather than IsNothing(expression)
. The compiler will raise a compile-time error if the compared expression is a value rather than a reference type, catching the type mismatch at compile time rather than simply returning False
at run-time. Strings are reference types in Visual Basic .NET, and so capable of being null (as opposed to simply zero-length, empty, strings). For such strings, this function returns True
. (For empty strings it returns False
.)IsNull(expression)
- This function determines whether the expression passed as its argument evaluates to
Null
. A null value in any sub-expression of the expression causes the entire expression to be considered null.
IsNull(expression1,expression2)
- This function, taking two arguments, is specific to Transact-SQL. In contrast to the Visual Basic function by this name, it does not return a
Boolean
, but instead returns the first expression if that is notNULL
, otherwise the second expression. The purpose of the function is to replace anyNULL
values with another, presumably (but not required to be) non-NULL
, value. It is a two-argument version ofCOALESCE
.
IsNumeric(expression)
- This function determines whether the expression passed as its argument can be converted to a number (be that a
Short
,Integer
,Long
,Single
,Double
, orDecimal
) from a character or string, or is already a number. In Transact-SQL, strings can be converted to numbers even if they contain characters that one might not expect in numbers. This is because Transact-SQL allows conversion frommoney
andsmallmoney
types to numbers, and monetary data in string form may contain currency indicator characters such as the '£
' or '$
' symbols. The same is true of VBScript, where any string that can be converted to a currency value in the current locale is considered to be numeric. VBScript does not, however, consider dates and times to be numeric.
IsObject(expression)
- This function determines whether the expression passed as its argument is an object rather than a value. This is equivalent to Visual Basic .NET's
IsReference
function.
IsReference(expression)
- This function determines whether the expression passed as its argument is a reference rather than a value. This is equivalent to Visual Basic 6's
IsObject
function.