vbs中Empty和Null的区别_vbs教程-查字典教程网
vbs中Empty和Null的区别
vbs中Empty和Null的区别
发布时间:2016-12-28 来源:查字典编辑
摘要:empty关键字指用于指明未初始化的变量值,与NULL不同NULL关键字指用于指明变量包含的数据无效,与empty不同实例:dimp'此时,...

empty关键字指用于指明未初始化的变量值,与NULL不同

NULL关键字指用于指明变量包含的数据无效,与empty不同

实例:

dimp

'此时,

isempty(p)为true

isNull(p)为null

再例如,在在数据库里读出记录的一个的某个字段ppp值是null,该字段没有数据

p=rs("ppp")

此时isNull(p)=true

再说一个容易模糊的东东(可能也是大家费解的地方)

vbs在没有optionexplicit时允许不声明变量就使用变量赋值

如没有dimp而直接

p="aaa"第一次遇上时就会隐式的去定义变量p,可能在这儿产生费解,

-------------

其一:

dimp

isempty(p)为true

isNull(p)为false

显示定义了变量

---------------

其二:

isempty(p)为true

isNull(p)为false

必须在没有强制声明optionexplicit的前提下,否则程序不允许继续运行

隐式的定义变量,隐式定义发生在第一次对变量的使用

当没有显式的dimp时,第一次使用p时就会实际的运行机制==>

isempty(p)

(搜索函数作用域,没有定义,再搜索全局作用域,也没定义!!ok先定义一下dimp)

然后再

isempty(p)

实际就是

isempty(p)

--->

(p?---->nodimp---->dimp)

---->

isEmpty(p)

isNull(p)

所以程序的处理结果isNull(p)==false而不是true

null不太好抓住它,怎么判断他?

-------

p=null

isNull(p)=true

现在奇怪,怎么p是初始化了,怎么又isNull(p)=true,因为发生在将null赋给p,用p变量代表不存在的数据

更明确的说,此时用“啥也没有的东西”由p来表示

--------

那什么时候才有isnull为true哩?

例如在发生数据库对象数据调用时有出现,数据库的列允许null

(更糟糕的是!!SQLserver2000里的中文翻译null此时又称其叫“空值”,糊涂,所有原因发生在翻译上,所以要多用,才能理解empty,null真正的区别,不要在汉字翻译上去混淆,而且不同的语言对nullempty的处理有有些差别)

“真空”可以叫empty

而null连“真空”也没有

这本身是两个很抽象的概念!!

再举一个例子以加深Null和Empty的认识

如下有两个表,A表有三个记录,均有实际数据,B表有两个记录,第二个记录“B字段1”

是空字符;A表和B表的aIDbID都是自动编号的字段,不允许填充Null

表A|表B

__________________|________________________________

aIDA字段|bIDB字段

1AAA1|1BBB1

2AAA2|2

3AAA3|

___________________________________________________

由aID和bID限定AleftouterJoinB的结果

(select*FromAleftjoinBonA.aID=B.bID)

___________________________________________________

aIDA字段1bIDB字段1

1AAA11BBB1

2AAA22

2AAA23Null

___________________________________________________

分析上面的结果:

AleftjoinB是强制B表匹配A表输出记录集,不管B表的bid是否存在于A表中!

这样一来,B表的bid=1bid=2均匹配A的aID=1aID=2,于是bID的相应数据原样出现在结果集中!

而记录号bID=3的记录在B表不存在,有于要求强制匹配入联合结果集,此时基于onA.aid=B.bID的条件,就用B.bid=A.aID出现在B表的联合输出结果列,而“B字段1”的

第三个记录不存在,此时联合结果集中就只能是标识为null---//不存在的数据//

而记录2的空字符则继续填充为空字符号

通过这个例子咳一看到null使用上的真正含义

空字符在数据中,相当于有一个空的座位

而null就连这个空的座位也没有

再例:

1:AAA2:BBB3:4:DD'3:的地方是Empty

1:AAA2:BBB4:DD'连标明座位号的3:都没有,那儿就是一个null

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新vbs学习
    热门vbs学习
    脚本专栏子分类