456:) 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.
355:
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 a
783:) 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 from
564:
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
799:' 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.
654:
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
508:
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
681:. 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
685:
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
560:
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
811:
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
827:
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
512:. Although the function takes an expression, rather than simply a variable name, any expression that isn't simply a variable name is considered
725:
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
1478:
1433:
1414:
1395:
1376:
1355:
1334:
1311:
1292:
1271:
1252:
1231:
540:
This function, in Visual Basic .NET, determines whether the expression passed as its argument is an exception object, i.e. an object of the
516:
to be an uninitialized variant. This function was available in Visual Basic 6, but has been superseded in Visual Basic .NET by the
416:
from this function in Visual Basic .NET. In Visual Basic 6, arrays are not reference types, and an uninitialized array will return
412:
This function determines whether the variable name passed as its argument is an array. Uninitialized arrays will, note, return
544:
class or one of its subclasses. In Visual Basic 6, the function tests whether the expression is a variant with the special
324:
582:
1682:
1655:
1628:
1574:
1601:
1520:
1547:
364:
throw exceptions if conversion is not possible. The validation functions allow one to test whether a conversion
1723:
759:
This function determines whether the expression passed as its argument can be converted to a number (be that a
432:
This function determines whether the expression passed as its argument can be converted to a variable of type
709:. A null value in any sub-expression of the expression causes the entire expression to be considered null.
791:
types to numbers, and monetary data in string form may contain currency indicator characters such as the '
441:
360:
value recording whether it was possible or not. (Note that the actual data conversion functions, such as
344:
452:
for such variables. Note that strings that contain a day of the week in addition to a date (e.g.
1457:
1444:
1474:
1429:
1410:
1391:
1372:
1351:
1330:
1307:
1288:
1267:
1248:
1227:
332:
476:
function. Note that it is not possible to directly compare an expression for equality to
1366:
340:
320:
1717:
1345:
1282:
705:
This function determines whether the expression passed as its argument evaluates to
577:
This function determines whether the expression passed as its argument evaluates to
468:
This function determines whether the expression passed as its argument evaluates to
448:
can of course be converted, despite being uninitialized, so this will always return
1323:
369:
336:
1488:
733:, otherwise the second expression. The purpose of the function is to replace any
380:
indicates that it would not be. Similarly the type checking functions return a
24:
functions in the standard libraries of the C and C++ programming languages, see
742:
1701:
1674:
1647:
1620:
1593:
1566:
1539:
1499:
1242:
328:
25:
1329:. Teach Yourself in 24 Hours Series (2nd ed.). Sams Publishing.
1046:
1044:
1007:
1005:
992:
990:
1469:
Wakefield, Cameron; Sonder, Henk-Evert (2001). Lee, Wei Meng (ed.).
1165:
1163:
958:
956:
954:
929:
927:
384:
recording whether the argument expression is of a particular type.
1691:
1664:
1637:
1610:
1583:
1556:
1529:
1493:
1224:
Sams teach yourself
Microsoft Excel 2000 programming in 21 days
914:
912:
585:
instructions) which can itself be written in Visual Basic as:
387:
In
Transact-SQL, the functions return zero or one rather than
737:
values with another, presumably (but not required to be) non-
977:
975:
973:
971:
1087:
1085:
1083:
729:, but instead returns the first expression if that is not
1247:. Certification Study Guide Series. John Wiley and Sons.
887:
885:
1102:
1100:
581:. It is a simple library function (comprising just 4
1428:. In a Nutshell (2nd ed.). O'Reilly Media, Inc.
1287:. In a Nutshell (2nd ed.). O'Reilly Media, Inc.
368:
fail, and change the program's flow of control in an
1281:
Lomax, Paul; Childs, Matt; Petrusha, Ronald (2003).
30:
1424:Roman, Steven; Petrusha, Ron; Lomax, Paul (2002b).
1405:Roman, Steven; Petrusha, Ron; Lomax, Paul (2002a).
1205:
1169:
1130:
1062:
1050:
1011:
996:
962:
945:
933:
864:
1322:
420:from this function just like an initialized array.
520:function. In VBScript, if a variant is assigned
1035:
1325:Sams teach yourself Visual Basic 6 in 24 hours
918:
1262:Knittel, Brian (2002). "VBScript Reference".
376:indicates that conversion would be possible,
8:
1321:Perry, Greg M.; Hettihewa, Sanjaya (1998).
1142:
1181:
981:
852:
741:, value. It is a two-argument version of
659:operator to compare an object directly to
472:. This is equivalent to Visual Basic 6's
1496:: SQL Server 2008: Transact-SQL Reference
1368:Visual Basic 2005: the complete reference
1350:. Mastering Series. John Wiley and Sons.
1244:MCSE: SQL Server 2000 design study guide
1091:
1074:
492:is the only way to test for equality to
335:. Several of them are also provided in
319:) are a set of functions in Microsoft's
1241:Israel, Marc; Jones, J. Steven (2001).
1118:
1106:
891:
845:
1023:
903:
876:
1513:
1154:
480:, because any expression of the form
7:
1302:Marcus, William; Levy, Alex (2002).
1226:. Sams Teach Yourself Series. Sams.
488:simply because it contains a null.
14:
1514:Microsoft's on-line documentation
1388:Mastering C# database programming
1206:Lomax, Childs & Petrusha 2003
1193:
1170:Roman, Petrusha & Lomax 2002a
1131:Roman, Petrusha & Lomax 2002b
1063:Roman, Petrusha & Lomax 2002b
1051:Lomax, Childs & Petrusha 2003
1012:Roman, Petrusha & Lomax 2002b
997:Lomax, Childs & Petrusha 2003
963:Roman, Petrusha & Lomax 2002a
946:Roman, Petrusha & Lomax 2002b
934:Roman, Petrusha & Lomax 2002a
865:Roman, Petrusha & Lomax 2002b
689:. (For empty strings it returns
1694:: .NET Framework Class Library:
1667:: .NET Framework Class Library:
1640:: .NET Framework Class Library:
1613:: .NET Framework Class Library:
1586:: .NET Framework Class Library:
1559:: .NET Framework Class Library:
1532:: .NET Framework Class Library:
1407:VB.NET Language Pocket Reference
650:The effect of this is to return
1456:Steele, Patrick (2005-06-03).
1443:Steele, Patrick (2005-05-31).
1344:Petroutsos, Evangelos (2002).
524:, this function still returns
1:
1426:VB.NET Language in a Nutshell
325:Visual Basic for Applications
1471:VB.net Web developer's guide
1371:. McGraw-Hill Professional.
1036:Wakefield & Sonder 2001
1740:
1489:"ISNUMERIC (Transact-SQL)"
1462:Patrick Steele's .NET Blog
1449:Patrick Steele's .NET Blog
1347:Mastering Visual Basic.NET
1304:Visual Basic 6 Programming
919:Perry & Hettihewa 1998
309:data information functions
15:
1365:Petrusha, Ronald (2006).
1264:Windows XP under the hood
313:data inspection functions
1445:"IsNothing? Definitely!"
1222:Harris, Matthew (1999).
586:
436:, or is already of type
1409:. O'Reilly Media, Inc.
1390:. John Wiley and Sons.
1143:Israel & Jones 2001
867:, pp. 394 et seq..
454:"Sat, October 12, 2010"
442:Uninitialized variables
1458:"Avoiding IsNothing()"
1284:VBScript in a nutshell
1077:, p. 367,528,637.
853:Marcus & Levy 2002
317:data-testing functions
32:Function availability
1696:Microsoft.VisualBasic
1669:Microsoft.VisualBasic
1642:Microsoft.VisualBasic
1615:Microsoft.VisualBasic
1588:Microsoft.VisualBasic
1561:Microsoft.VisualBasic
1534:Microsoft.VisualBasic
1386:Price, Jason (2003).
351:What the functions do
1306:. Tata McGraw-Hill.
345:Microsoft SQL Server
948:, pp. 394–395.
470:System.DBNull.Value
33:
1266:. Que Publishing.
879:, p. 402–403.
855:, p. 750–751.
841:What supports what
343:Data Provider for
31:
1480:978-1-928994-48-0
1435:978-0-596-00308-1
1416:978-0-596-00428-6
1397:978-0-7821-4183-2
1378:978-0-07-226033-5
1357:978-0-7821-2877-2
1336:978-0-672-31533-6
1313:978-0-07-040290-4
1294:978-0-596-00488-0
1273:978-0-7897-2733-6
1254:978-0-7821-2942-7
1233:978-0-672-31543-5
484:will evaluate to
444:that are of type
333:Visual Basic .NET
298:
297:
1731:
1705:
1697:
1686:
1678:
1670:
1659:
1651:
1643:
1632:
1624:
1616:
1605:
1597:
1589:
1578:
1570:
1562:
1551:
1543:
1535:
1524:
1503:
1484:
1465:
1452:
1439:
1420:
1401:
1382:
1361:
1340:
1328:
1317:
1298:
1277:
1258:
1237:
1209:
1203:
1197:
1191:
1185:
1179:
1173:
1167:
1158:
1152:
1146:
1140:
1134:
1128:
1122:
1116:
1110:
1104:
1095:
1089:
1078:
1072:
1066:
1060:
1054:
1048:
1039:
1033:
1027:
1021:
1015:
1009:
1000:
994:
985:
979:
966:
960:
949:
943:
937:
931:
922:
916:
907:
901:
895:
889:
880:
874:
868:
862:
856:
850:
830:
824:
814:
808:
798:
794:
790:
786:
782:
778:
774:
770:
766:
762:
756:
745:
740:
736:
732:
728:
722:
708:
702:
692:
688:
684:
680:
672:
669:
662:
658:
653:
647:
644:
641:
638:
635:
632:
629:
626:
623:
620:
617:
614:
611:
608:
605:
602:
599:
596:
593:
590:
580:
574:
563:
557:
547:
543:
542:System.Exception
537:
527:
523:
519:
511:
505:
495:
491:
487:
483:
479:
475:
471:
465:
455:
451:
447:
439:
435:
429:
419:
415:
409:
398:
394:
390:
383:
379:
375:
363:
359:
304:
279:
257:
235:
213:
191:
169:
147:
125:
103:
81:
59:
34:
23:
1739:
1738:
1734:
1733:
1732:
1730:
1729:
1728:
1724:Microsoft BASIC
1714:
1713:
1712:
1695:
1684:
1681:
1668:
1657:
1654:
1641:
1630:
1627:
1614:
1603:
1600:
1587:
1576:
1573:
1560:
1549:
1546:
1533:
1522:
1519:
1516:
1511:
1509:Further reading
1506:
1487:
1481:
1468:
1455:
1442:
1436:
1423:
1417:
1404:
1398:
1385:
1379:
1364:
1358:
1343:
1337:
1320:
1314:
1301:
1295:
1280:
1274:
1261:
1255:
1240:
1234:
1221:
1217:
1212:
1204:
1200:
1192:
1188:
1182:Petroutsos 2002
1180:
1176:
1168:
1161:
1153:
1149:
1141:
1137:
1133:, pp. 394.
1129:
1125:
1117:
1113:
1105:
1098:
1090:
1081:
1073:
1069:
1065:, pp. 397.
1061:
1057:
1049:
1042:
1034:
1030:
1022:
1018:
1014:, pp. 395.
1010:
1003:
995:
988:
982:Petroutsos 2002
980:
969:
961:
952:
944:
940:
932:
925:
917:
910:
902:
898:
890:
883:
875:
871:
863:
859:
851:
847:
843:
838:
828:
818:
812:
802:
796:
792:
788:
784:
780:
776:
772:
768:
764:
760:
750:
743:
738:
734:
730:
726:
712:
706:
696:
690:
686:
682:
674:
670:
664:
660:
656:
651:
649:
648:
645:
642:
639:
636:
633:
630:
627:
624:
621:
618:
615:
612:
609:
606:
603:
600:
597:
594:
591:
588:
578:
568:
561:
551:
545:
541:
531:
525:
521:
517:
509:
499:
493:
489:
485:
481:
477:
473:
469:
459:
453:
449:
445:
437:
433:
423:
417:
413:
403:
396:
392:
388:
381:
377:
373:
361:
357:
353:
307:(also known as
302:
277:
255:
233:
211:
189:
167:
145:
123:
101:
79:
57:
29:
17:
12:
11:
5:
1737:
1735:
1727:
1726:
1716:
1715:
1711:
1708:
1707:
1706:
1679:
1652:
1625:
1598:
1571:
1544:
1515:
1512:
1510:
1507:
1505:
1504:
1502:. 23 May 2023.
1485:
1479:
1466:
1453:
1440:
1434:
1421:
1415:
1402:
1396:
1383:
1377:
1362:
1356:
1341:
1335:
1318:
1312:
1299:
1293:
1278:
1272:
1259:
1253:
1238:
1232:
1218:
1216:
1213:
1211:
1210:
1208:, p. 343.
1198:
1186:
1184:, p. 114.
1174:
1159:
1157:, p. 119.
1147:
1145:, p. 476.
1135:
1123:
1111:
1096:
1094:, p. 438.
1079:
1067:
1055:
1053:, p. 342.
1040:
1038:, p. 690.
1028:
1026:, p. 416.
1016:
1001:
999:, p. 341.
986:
984:, p. 115.
967:
950:
938:
923:
921:, p. 237.
908:
906:, p. 402.
896:
894:, p. 609.
881:
869:
857:
844:
842:
839:
837:
834:
833:
832:
825:
816:
809:
800:
757:
748:
723:
710:
703:
694:
587:
575:
566:
558:
549:
538:
529:
506:
497:
466:
457:
430:
421:
410:
352:
349:
341:.NET Framework
321:Visual Basic 6
296:
295:
292:
289:
286:
283:
280:
274:
273:
270:
267:
264:
261:
258:
252:
251:
248:
245:
242:
239:
236:
230:
229:
226:
223:
220:
217:
214:
208:
207:
204:
201:
198:
195:
192:
186:
185:
182:
179:
176:
173:
170:
164:
163:
160:
157:
154:
151:
148:
142:
141:
138:
135:
132:
129:
126:
120:
119:
116:
113:
110:
107:
104:
98:
97:
94:
91:
88:
85:
82:
76:
75:
72:
69:
66:
63:
60:
54:
53:
50:
47:
44:
41:
38:
37:Function name
13:
10:
9:
6:
4:
3:
2:
1736:
1725:
1722:
1721:
1719:
1709:
1703:
1699:
1693:
1688:
1680:
1676:
1672:
1666:
1661:
1653:
1649:
1645:
1639:
1634:
1626:
1622:
1618:
1612:
1607:
1599:
1595:
1591:
1585:
1580:
1572:
1568:
1564:
1558:
1553:
1545:
1541:
1537:
1531:
1526:
1518:
1517:
1508:
1501:
1497:
1495:
1490:
1486:
1482:
1476:
1472:
1467:
1463:
1459:
1454:
1450:
1446:
1441:
1437:
1431:
1427:
1422:
1418:
1412:
1408:
1403:
1399:
1393:
1389:
1384:
1380:
1374:
1370:
1369:
1363:
1359:
1353:
1349:
1348:
1342:
1338:
1332:
1327:
1326:
1319:
1315:
1309:
1305:
1300:
1296:
1290:
1286:
1285:
1279:
1275:
1269:
1265:
1260:
1256:
1250:
1246:
1245:
1239:
1235:
1229:
1225:
1220:
1219:
1214:
1207:
1202:
1199:
1195:
1190:
1187:
1183:
1178:
1175:
1172:, p. 87.
1171:
1166:
1164:
1160:
1156:
1151:
1148:
1144:
1139:
1136:
1132:
1127:
1124:
1120:
1115:
1112:
1108:
1103:
1101:
1097:
1093:
1092:Petrusha 2006
1088:
1086:
1084:
1080:
1076:
1075:Petrusha 2006
1071:
1068:
1064:
1059:
1056:
1052:
1047:
1045:
1041:
1037:
1032:
1029:
1025:
1020:
1017:
1013:
1008:
1006:
1002:
998:
993:
991:
987:
983:
978:
976:
974:
972:
968:
965:, p. 86.
964:
959:
957:
955:
951:
947:
942:
939:
936:, p. 69.
935:
930:
928:
924:
920:
915:
913:
909:
905:
900:
897:
893:
888:
886:
882:
878:
873:
870:
866:
861:
858:
854:
849:
846:
840:
835:
826:
822:
817:
813:IsReference()
810:
806:
801:
758:
754:
749:
746:
724:
720:
716:
711:
704:
700:
695:
678:
667:
584:
576:
572:
567:
559:
555:
550:
539:
535:
530:
515:
507:
503:
498:
494:System.DBNull
478:System.DBNull
467:
463:
458:
443:
431:
427:
422:
411:
407:
402:
401:
400:
385:
371:
367:
350:
348:
346:
342:
338:
334:
330:
326:
322:
318:
314:
310:
306:
293:
290:
287:
284:
281:
276:
275:
271:
268:
265:
262:
259:
254:
253:
249:
246:
243:
240:
237:
232:
231:
227:
224:
221:
218:
215:
210:
209:
205:
202:
199:
196:
193:
188:
187:
183:
180:
177:
174:
171:
166:
165:
161:
158:
155:
152:
149:
144:
143:
139:
136:
133:
130:
127:
122:
121:
117:
114:
111:
108:
105:
100:
99:
95:
92:
89:
86:
83:
78:
77:
73:
70:
67:
64:
61:
56:
55:
51:
48:
45:
42:
39:
36:
35:
27:
21:
1690:
1663:
1636:
1609:
1582:
1555:
1528:
1492:
1473:. Syngress.
1470:
1461:
1448:
1425:
1406:
1387:
1367:
1346:
1324:
1303:
1283:
1263:
1243:
1223:
1215:Sources used
1201:
1194:MSDN & 1
1189:
1177:
1150:
1138:
1126:
1119:Steele 2005b
1114:
1107:Steele 2005a
1070:
1058:
1031:
1019:
941:
899:
892:Knittel 2002
872:
860:
848:
820:
819:IsReference(
804:
752:
718:
714:
698:
676:
673:rather than
665:
570:
553:
533:
513:
501:
461:
425:
405:
386:
370:if statement
365:
354:
337:Transact-SQL
316:
312:
308:
301:
299:
19:
1685:IsReference
1024:Harris 1999
904:Harris 1999
877:Harris 1999
719:expression2
715:expression1
518:IsNothing()
278:IsReference
1155:Price 2003
836:References
829:IsObject()
821:expression
805:expression
789:smallmoney
753:expression
751:IsNumeric(
744:COALESCE()
699:expression
677:expression
675:IsNothing(
671:IS Nothing
666:expression
663:, writing
631:Expression
607:Expression
571:expression
569:IsNothing(
552:IsMissing(
534:expression
502:expression
490:IsDBNull()
482:x = DbNull
462:expression
426:expression
1702:Microsoft
1698:namespace
1675:Microsoft
1671:namespace
1658:IsNumeric
1648:Microsoft
1644:namespace
1631:IsNothing
1621:Microsoft
1617:namespace
1594:Microsoft
1590:namespace
1567:Microsoft
1563:namespace
1540:Microsoft
1536:namespace
1500:Microsoft
831:function.
815:function.
803:IsObject(
598:IsNothing
460:IsDBNull(
305:functions
234:IsNumeric
190:IsNothing
168:IsMissing
46:VBScript
1718:Category
1577:IsDBNull
646:Function
595:Function
548:subtype.
532:IsError(
500:IsEmpty(
474:IsNull()
404:IsArray(
329:VBScript
256:IsObject
102:IsDBNull
49:VB .NET
16:For the
1687:method"
1660:method"
1633:method"
1606:method"
1604:IsError
1579:method"
1552:method"
1525:method"
1523:IsArray
781:Decimal
765:Integer
727:Boolean
713:IsNull(
697:IsNull(
661:Nothing
637:Nothing
622:Boolean
579:Nothing
565:exists.
546:vbError
522:Nothing
424:IsDate(
391:values
389:Boolean
382:Boolean
358:Boolean
339:by the
146:IsError
124:IsEmpty
58:IsArray
26:ctype.h
1550:IsDate
1477:
1432:
1413:
1394:
1375:
1354:
1333:
1310:
1291:
1270:
1251:
1230:
795:' or '
777:Double
773:Single
668:
625:Return
613:Object
592:Shared
589:Public
486:DbNull
331:, and
212:IsNull
80:IsDate
52:T-SQL
1710:Other
785:money
779:, or
761:Short
691:False
683:False
652:False
604:ByVal
526:False
414:False
397:False
378:False
366:would
362:Oct()
315:, or
40:VB 6
1692:MSDN
1665:MSDN
1638:MSDN
1611:MSDN
1584:MSDN
1557:MSDN
1530:MSDN
1494:MSDN
1475:ISBN
1430:ISBN
1411:ISBN
1392:ISBN
1373:ISBN
1352:ISBN
1331:ISBN
1308:ISBN
1289:ISBN
1268:ISBN
1249:ISBN
1228:ISBN
787:and
769:Long
739:NULL
735:NULL
731:NULL
707:Null
687:True
562:True
554:name
510:Null
450:True
446:Date
438:Date
434:Date
418:True
406:name
395:and
393:True
374:True
372:.)
300:The
250:Yes
228:Yes
96:Yes
43:VBA
20:xxxx
643:End
583:CIL
514:not
440:.
294:No
291:Yes
272:No
266:Yes
263:Yes
260:Yes
247:Yes
244:Yes
241:Yes
238:Yes
222:Yes
219:Yes
216:Yes
206:No
203:Yes
184:No
175:Yes
172:Yes
162:No
159:Yes
153:Yes
150:Yes
140:No
134:Yes
131:Yes
128:Yes
118:No
115:Yes
93:Yes
90:Yes
87:Yes
84:Yes
74:No
71:Yes
68:Yes
65:Yes
62:Yes
1720::
1700:.
1689:.
1673:.
1662:.
1646:.
1635:.
1619:.
1608:.
1592:.
1581:.
1565:.
1554:.
1538:.
1527:.
1498:.
1491:.
1460:.
1447:.
1162:^
1099:^
1082:^
1043:^
1004:^
989:^
970:^
953:^
926:^
911:^
884:^
797:$
775:,
771:,
767:,
763:,
693:.)
657:IS
634:Is
619:As
610:As
399:.
347:.
327:,
323:,
311:,
303:Is
288:No
285:No
282:No
269:No
225:No
200:No
197:No
194:No
181:No
178:No
156:No
137:No
112:No
109:No
106:No
22:()
18:is
1704:.
1683:"
1677:.
1656:"
1650:.
1629:"
1623:.
1602:"
1596:.
1575:"
1569:.
1548:"
1542:.
1521:"
1483:.
1464:.
1451:.
1438:.
1419:.
1400:.
1381:.
1360:.
1339:.
1316:.
1297:.
1276:.
1257:.
1236:.
1196:.
1121:.
1109:.
823:)
807:)
793:£
755:)
747:.
721:)
717:,
701:)
679:)
640:)
628:(
616:)
601:(
573:)
556:)
536:)
528:.
504:)
496:.
464:)
428:)
408:)
28:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.