数据类型( 三 )

不必过多关注 Variant 变数中数据的类型就可对 Variant 变数进行操作,但须避免落入陷阱 。如果对 Variant 变数进行数学运算或函式运算,则 Variant 必包含某个数 。更详细的信息,请参阅《在线上手册》中“高级变数主题”中的“变数中存储的 Numeric 值”部分 。如果正在连线两个字元串,则用 " & " 操作符而不用 " + " 操作符 。更详细的信息,请参阅《在线上手册》中“高级变数主题”中的“Variant 变数中存储的 Strings”部分 。除了可以像其它标準数据类型一样操作外,Variants 还包含三种特定值:Empty,Null 和 Error 。定植Empty 值有时需要知道是否已将一个值赋予所创建的变数 。在赋值之前,Variant 变数具有值 Empty 。值 Empty 是异于0、零长度字元串 ("") 或 Null 值的特定值 。可用 IsEmpty 函式测试 Empty 值:IfIsEmpty(Z)ThenZ=0当 Variant 变数包含 Empty 值时,可在表达式中使用它;将其作为 0 或零长度字元串来处理,这要根据表达式来定 。只要将任何值(包括 0、零长度字元串或 Null)赋予 Variant 变数,Empty 值就会消失 。而将关键字 Empty 赋予 Variant 变数,就可将 Variant 变数恢复为 Empty 。Null 值Variant 数据类型还可包含一特定值:Null 。Null通常用于资料库套用程式,表示未知数据或丢失的数据 。由于在资料库中使用 Null 方法,Null 具有某些唯一的特性:对包含 Null 的表达式,计算结果总是 Null 。于是说 Null 通过表达式“传播”;如果表达式的部分之值为 Null,那幺整个表达式的值也为 Null 。将 Null 值、含 Null 的 Variant 变数或计算结果为 Null 的表达式作为参数传递给大多数函式,将会使函式返回 Null 。Null 值经由返回 Variant 数据类型的内在函式传播 。也可用 Null 关键字指定 Null 值 。Z=Null也可用 IsNull 函式测试 Variant 变数是否包含 Null 值 。IfIsNull(X)AndIsNull(Y)ThenZ=NullElseZ=0EndIf如果将 Null 值赋予 Variant 以外的任何其它类型变数,则将出现可以捕获的错误 。而将 Null 值赋予 Variant 则不会发生错误,Null 将通过包含 Variant 变数的表达式传播(儘管 Null 并不通过某些函式来传播) 。可以从任何具有 Variant 返回值的函式过程返回 Null 。除非明确将 Null 赋予变数,否则变数不会设定成 Null 值,所以,如果不在应用程式中使用 Null,就不必书写测试 Null 和处理 Null 的程式 。详细信息 关于如何在表达式中使用 Null 的详细信息,请参阅语言参考的“Null”部分 。Error 值在 Variant 中,Error 是特定值,指出已发生的过程中的错误状态 。但是,与其它类型错误不同,这里并未发生正常的应用程式级的错误处理 。因此,程式设计师或应用程式本身可根据 Error 值进行取捨 。利用 CVErr 函式将实数转换成错误值就可建立 Error 值 。详细信息 关于如何在表达式中使用 Error 值,请参阅语言参考中的“CVErr 函式”部分 。关于错误处理的信息,请参阅“调试代码和处理错误” 。有关 Variant 数据类型的更详细信息,请参阅《在线上手册》中的“高级变数主题” 。存储空间大小与範围以下表格显示所支持的数据类型,以及存储空间大小与範围 。数据类型储存空间大小(单位:位元组)範围Byte(位元组型)10 - 255Boolean(布尔型/逻辑型)2True 或 FalseInteger(整数型)2-32,768 ~ 32767Long(长整形)4-2,147,483,648 ~ 2,147,483,647Single(单精度浮点型)4负数範围:-3.402823E38 ~ -1.401298E-45正数範围:1.401298E-45 ~ 3.402823E38Double(双精度浮点型)8负数範围:-1.797,693,134,862,32E308 ~-4.940,656,458,412,47E-324正数範围:4.940,656,458,412,47E-324 ~1.797,693,134,862,32E308Currency(变比整形 / 货币类型)8-922,337,203,685,477.5808~922,337,203,685,477.5807Decimal(十进制型)14没有小数点时:+/-79,228,162,514,264,337,593,543,950,335有小数点时:+/-7.922,816,251,426,433,759,354,395,033,5最小的非零值:+/-0.000,000,000,000,000,000,000,000,000,1Date(时间日期型)8100年1月1日~9999年12月31日Object(对象型)4任何 Object 引用String (变长)10长度从 0 到 大约 20 亿String (定长)10长度从 1 到大约 65,400Variant (数字)16任何数字值,最大可达 Double 的範围Variant (字元)22与字元串长度,变长 String 有相同的範围用户自定义变数-- 任何数据类型的数组都需要 20 个位元组的记忆体空间,加上每一数组维数占 4 个位元组,再加上数据本身所占用的空间 。数据所占用的记忆体空间可以用数据元数目乘上每个元素的大小加以计算 。例如,以 4 个 2 位元组之 Integer 数据元所组成的一维数组中的数据,占 8 个位元组 。这 8 个位元组加上额外的 24 个位元组,使得这个数组所需总记忆体空间为 32 个位元组 。包含一数组的 Variant 比单独的一个数组需要多 12 个位元组 。定类,定序;定比;定距