国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > VBScript > 正文

vbs中Empty和Null的區(qū)別

2020-06-26 18:07:55
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
empty關(guān)鍵字指用于指明未初始化的變量值,與NULL不同 
NULL關(guān)鍵字指用于指明變量包含的數(shù)據(jù)無(wú)效,與empty不同 
實(shí)例: 
dim p 
'此時(shí),  
isempty(p) 為 true 
isNull(p) 為 null 
再例如,在在數(shù)據(jù)庫(kù)里讀出記錄的一個(gè)的某個(gè)字段ppp值是 null ,該字段沒(méi)有數(shù)據(jù) 
p=rs("ppp") 
此時(shí) isNull(p)=true 
再說(shuō)一個(gè)容易模糊的東東(可能也是大家費(fèi)解的地方) 
vbs 在沒(méi)有option explicit時(shí)允許不聲明變量就使用變量賦值 
如 沒(méi)有dim p 而直接 
p="aaa" 第一次遇上時(shí)就會(huì)隱式的去定義變量p,可能在這兒產(chǎn)生費(fèi)解, 
------------- 
其一: 
dim p 
isempty(p) 為 true 
isNull(p) 為 false 
顯示定義了變量 
--------------- 
其二: 
isempty(p) 為 true 
isNull(p) 為 false 
必須在沒(méi)有強(qiáng)制聲明option explicit的前提下,否則程序不允許繼續(xù)運(yùn)行 
隱式的定義變量,隱式定義發(fā)生在第一次對(duì)變量的使用 
當(dāng)沒(méi)有顯式的dim p時(shí),第一次使用p 時(shí)就會(huì)實(shí)際的 運(yùn)行機(jī)制==> 
isempty(p) 
(搜索函數(shù)作用域,沒(méi)有定義,再搜索全局作用域,也沒(méi)定義!!ok 先定義一下 dim p) 
然后再 
isempty(p) 
實(shí)際就是 
isempty(p)  
---> 
( p ? ----> no dim p ----> dim p )  
----> 
isEmpty(p) 
isNull(p) 
所以程序的處理結(jié)果 isNull(p)==false 而不是 true 
null 不太好抓住它,怎么判斷他? 
------- 
p=null  
isNull(p)=true 
現(xiàn)在奇怪,怎么p是初始化了,怎么又isNull(p)=true,因?yàn)榘l(fā)生在將 null 賦給 p,用 p變量代表不存在的數(shù)據(jù) 
更明確的說(shuō),此時(shí)用“啥也沒(méi)有的東西”由p來(lái)表示 
-------- 
那什么時(shí)候才有isnull 為 true 哩? 
例如在發(fā)生數(shù)據(jù)庫(kù)對(duì)象數(shù)據(jù)調(diào)用時(shí)有出現(xiàn),數(shù)據(jù)庫(kù)的列允許 null  
(更糟糕的是!!SQL server2000里的中文翻譯null此時(shí)又稱其叫“空值”,糊涂,所有原因發(fā)生在翻譯上,所以要多用,才能理解empty,null真正的區(qū)別,不要在漢字翻譯上去混淆,而且不同的語(yǔ)言對(duì)null empty的處理有有些差別) 
“真空”可以叫empty 
而null 連“真空”也沒(méi)有 
這本身是兩個(gè)很抽象的概念!! 
再舉一個(gè)例子以加深Null 和Empty 的認(rèn)識(shí) 
如下有兩個(gè)表,A表有三個(gè)記錄,均有實(shí)際數(shù)據(jù),B表有兩個(gè)記錄,第二個(gè)記錄“B字段1” 
是空字符;A表和B表的 aID bID 都是自動(dòng)編號(hào)的字段,不允許填充Null 
表A | 表B 
__________________ |________________________________ 
aID A字段 | bID B字段  
1 AAA1 | 1 BBB1 
2 AAA2 | 2  
3 AAA3 |  
___________________________________________________ 
由aID和bID限定A left outer Join B 的結(jié)果 
(select * From A left join B on A.aID=B.bID) 
___________________________________________________ 
aID A字段1 bID B字段1  
1 AAA1 1 BBB1 
2 AAA2 2  
2 AAA2 3 Null 
___________________________________________________ 
分析上面的結(jié)果: 
A left join B是強(qiáng)制B表匹配 A表輸出記錄集,不管B表的bid是否存在于A表中! 
這樣一來(lái),B表的 bid=1 bid=2均匹配 A的 aID=1 aID=2,于是bID的相應(yīng)數(shù)據(jù)原樣出現(xiàn)在結(jié)果集中! 
而記錄號(hào) bID=3 的記錄在 B表不存在,有于要求強(qiáng)制匹配入聯(lián)合結(jié)果集,此時(shí)基于on A.aid=B.bID 的條件,就用 B.bid=A.aID 出現(xiàn)在B表的聯(lián)合輸出結(jié)果列,而“B字段1”的 
第三個(gè)記錄不存在,此時(shí)聯(lián)合結(jié)果集中就只能是標(biāo)識(shí)為 null ---//不存在的數(shù)據(jù)// 
而記錄2的空字符則繼續(xù)填充為空字符號(hào) 
通過(guò)這個(gè)例子咳一看到 null 使用上的真正含義 
空字符在數(shù)據(jù)中,相當(dāng)于有一個(gè)空的座位 
而null 就連這個(gè)空的座位也沒(méi)有 
再例: 
1:AAA 2: BBB 3: 4:DD ' 3: 的地方是Empty 
1:AAA 2:BBB 4:DD '連標(biāo)明座位號(hào)的3: 都沒(méi)有,那兒就是一個(gè)null 
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黎城县| 依兰县| 苗栗市| 驻马店市| 榆中县| 广东省| 昌乐县| 岗巴县| 盐源县| 白河县| 昆明市| 泌阳县| 安图县| 乡城县| 吉安县| 游戏| 武冈市| 双江| 东平县| 治多县| 大田县| 北碚区| 洱源县| 视频| 额尔古纳市| 康定县| 阳西县| 华安县| 镇赉县| 双辽市| 牙克石市| 安吉县| 瓦房店市| 鞍山市| 巩留县| 巴中市| 稷山县| 柘城县| 永平县| 天柱县| 邯郸县|