Variant 数据类型介绍
2013-12-12 11:42
330 查看
Variant 数据类型是所有没被显式声明(用如 Dim、Private、Public 或 Static等语句)为其他类型变量的数据类型。Variant 数据类型并没有类型声明字符。
Variant 是一种特殊的数据类型,除了定长String数据及用户定义类型外,可以包含任何种类的数据。Variant
也可以包含Empty、Error、Nothing及Null等特殊值。可以用VarType函数或TypeName函数来决定如何处理
Variant 中的数据。
数值数据可以是任何整型或实型数,负数时范围从 -1.797693134862315E308 到 -4.94066E-324,正数时则从 4.94066E-324 到 1.797693134862315E308。通常,数值Variant 数据保持为其 Variant 中原来的数据类型。例如,如果把一个 Integer赋值给 Variant,则接下来的运算会把此 Variant 当成 Integer 来处理。然而,如果算术运算针对含 Byte、Integer、Long 或 Single 之一的Variant 执行,并当结果超过原来数据类型的正常范围时,则在
Variant 中的结果会提升到较大的数据类型。如Byte则提升到 Integer,Integer 则提升到 Long,而 Long和Single 则提升为 Double。当 Variant 变量中有 Currency、Decimal 及
Double 值超过它们各自的范围时,会发生错误。
VARIANT支持的类型,也就是vt成员的取值如表4-3所示。
(续表)
Variant 是一种特殊的数据类型,除了定长String数据及用户定义类型外,可以包含任何种类的数据。Variant
也可以包含Empty、Error、Nothing及Null等特殊值。可以用VarType函数或TypeName函数来决定如何处理
Variant 中的数据。
数值数据可以是任何整型或实型数,负数时范围从 -1.797693134862315E308 到 -4.94066E-324,正数时则从 4.94066E-324 到 1.797693134862315E308。通常,数值Variant 数据保持为其 Variant 中原来的数据类型。例如,如果把一个 Integer赋值给 Variant,则接下来的运算会把此 Variant 当成 Integer 来处理。然而,如果算术运算针对含 Byte、Integer、Long 或 Single 之一的Variant 执行,并当结果超过原来数据类型的正常范围时,则在
Variant 中的结果会提升到较大的数据类型。如Byte则提升到 Integer,Integer 则提升到 Long,而 Long和Single 则提升为 Double。当 Variant 变量中有 Currency、Decimal 及
Double 值超过它们各自的范围时,会发生错误。
VARIANT支持的类型,也就是vt成员的取值如表4-3所示。
表4-3 VARIANT支持的类型 | |
类型名 | 含义 |
VT_EMPTY | 指示未指定值 |
VT_NULL | 指示空值(类似于 SQL 中的空值) |
VT_I2 | 指示 short 整数 |
VT_I4 | 指示 long 整数 |
VT_R4 | 指示 float 值 |
VT_R8 | 指示 double 值 |
VT_CY | 指示货币值 |
VT_DATE | 指示 DATE 值 |
VT_BSTR | 指示 BSTR 字符串 |
VT_DISPATCH | 指示 IDispatch 指针 |
VT_ERROR | 指示 SCODE |
VT_BOOL | 指示一个布尔值 |
VT_VARIANT | 指示 VARIANTfar 指针 |
VT_UNKNOWN | 指示 IUnknown 指针 |
VT_DECIMAL | 指示 decimal 值 |
VT_I1 | 指示 char 值 |
类型名 | 含义 |
VT_UI1 | 指示 byte |
VT_UI2 | 指示 unsignedshort |
VT_UI4 | 指示 unsignedlong |
VT_I8 | 指示 64 位整数 |
VT_UI8 | 指示 64 位无符号整数 |
VT_INT | 指示整数值 |
VT_UINT | 指示 unsigned 整数值 |
VT_VOID | 指示 C 样式 void |
VT_HRESULT | 指示 HRESULT |
VT_PTR | 指示指针类型 |
VT_SAFEARRAY | 指示 SAFEARRAY |
VT_CARRAY | 指示 C 样式数组 |
VT_USERDEFINED | 指示用户定义的类型 |
VT_LPSTR | 指示一个以 NULL 结尾的字符串 |
VT_LPWSTR | 指示由 nullNothingnullptrnull引用(在 Visual Basic 中为 Nothing) 终止的宽字符串 |
VT_RECORD | 指示用户定义的类型 |
VT_FILETIME | 指示 FILETIME 值 |
VT_BLOB | 指示以长度为前缀的字节 |
VT_STREAM | 指示随后是流的名称 |
VT_STORAGE | 指示随后是存储的名称 |
VT_STREAMED_OBJECT | 指示流包含对象 |
VT_STORED_OBJECT | 指示存储包含对象 |
VT_BLOB_OBJECT | 指示 Blob 包含对象 |
VT_CF | 指示剪贴板格式 |
VT_CLSID | 指示类 ID |
VT_VECTOR | 指示简单的已计数数组 |
VT_ARRAY | 指示 SAFEARRAY 指针 |
VT_BYREF | 指示值为引 |
相关文章推荐
- VARIANT 数据类型简单介绍
- _variant_t 数据类型介绍
- _variant_t 数据类型介绍
- Redis五种数据类型介绍
- ADO 数据类型_bstr_t 和_variant_t
- SQL Server数据类型介绍
- MySQL 中的数据类型介绍
- MySQL 中的数据类型介绍
- sqlserver数据库mybatis报错---不支持“variant”数据类型。
- [Microsoft][ODBC Microsoft Access Driver] 试图将 Null 值赋予一个非 Variant 数据类型的变量
- 在COM方法中用VARIANT类型传递数组数据
- variant_t 数据类型
- 介绍PostgreSQL中的jsonb数据类型
- 给定数据类型的补码表示,不能简单的用取反加一的方法来求反码的,介绍下2的补码系统
- c# 数据类型占用的字节数介绍
- VARIANT数据类型所支持的所有数据类型
- MySQL常用数据类型介绍
- mysql数据类型介绍(含text,longtext,mediumtext说明)
- JAVA平台介绍和基本数据类型讲解
- 数据库复习总结(3)-创建数据库、表、以及数据类型的介绍