明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

如何正確處理數(shù)據(jù)庫中的Null

[摘要]對于初學(xué)者, 在處理數(shù)據(jù)庫中的 Null 資料型態(tài)是有一點麻煩的事, 在這篇文章文章中我們將談?wù)?Null , 你將會了解到如何知道一個值是 Null , 哪些函數(shù)可以或不可以處理 Null 首先, 我們必須知道在 VBScript 中, Variant 是唯一的一種資料型態(tài), 對于那些已經(jīng)熟悉...
   對于初學(xué)者, 在處理數(shù)據(jù)庫中的 Null 資料型態(tài)是有一點麻煩的事, 在這篇文章文章中我們將談?wù)?Null , 你將會了解到如何知道一個值是 Null , 哪些函數(shù)可以或不可以處理 Null  首先, 我們必須知道在 VBScript 中, Variant 是唯一的一種資料型態(tài), 對于那些已經(jīng)熟悉其它語言的程序開發(fā)者, 可能會感到有點不習(xí)慣。 使用 Variant 的好處在于其相當(dāng)有彈性, 因為 Variant 可以儲存任何數(shù)據(jù)類型, 例如, 整數(shù), 字符串, 日期時間, 甚至包括對象及數(shù)組。然而彈性是必須付出代價的, 因為指定 Variant 可能會比指定特殊數(shù)據(jù)類型所用到的內(nèi)存來得多 
在 Variant 數(shù)據(jù)類型中還有兩種很特殊的子類型 (Subtype): Empty 及 Null, 事實上稱子類型可能不太恰當(dāng), 因為他們并不儲存某些值, 當(dāng)一個變量的資料子類型為 Empty 或 Null, 他們的值就是 Empty 或 Null 
Empty 
一個變量在被宣告后, 但在其被指定一個值之前, 這個變量的資料子類型就是 Empty, 換句話說, Empty 就相當(dāng)于"尚未初始化", 我們來看看下面的例子 
Dim varTest 
Response.Write TypeName(varTest) 
其執(zhí)行結(jié)果應(yīng)該為 Empty, 因此 Empty 可以說是一個變量的初始資料子類型及初始值, Empty 只是代表一個變量的狀態(tài), 試試下面的例子 
Dim varTest 
Response.Write CLng(varTest) 
Response.Write CStr(varTest) 
第一行的程序?qū)@示 0, 因為 Empty 被表示為整數(shù)時就是 0, 第二行執(zhí)行之結(jié)果將是什么都不顯示, 因為當(dāng)被表示為字符串時 Empty 就是 Empty, 或可說是長度為零的字符串 
當(dāng)一個變量被指定一個值后, 它便不再是 Empty, 它將是其它的子類型, 依資料的類型而有所不同, 當(dāng)然, 你還是可以利用 Empty 這 個關(guān)鍵詞將這變量變回 Empty 子類型 
varTest = Empty 
有兩種方式你可以判斷一個變量是否為 Empty 
If varTest = Empty Then 
  Response.Write "The variable is empty." 
End If 
或是 
If IsEmpty(varTest) Then 
  Response.Write "The variable is empty." 
End If 
Null 
Null 這個資料子類型 和 Empty 很類似, 但不同點在于 Empty 代表一個變量尚未被初始化, 也就是還沒有被賦予任何的值, 而一個變量為 Null 只有在你指定它為 Null 之后。最常遇到 Null 的機會應(yīng)該是在處理數(shù)據(jù)庫的時候, 當(dāng)一個字段沒有資料時, 便是 Null 
指定和判斷 Null 的方法與 Empty 很類似 
varTest = Null 
然而你只能使用 IsNull() 函數(shù)來判斷 Null, 這是因為 Null 所代表的是不合法的資料, 你可以試試以下的例子 
Dim varTest 
varTest = Null 
If varTest = Null Then 
  Response.Write "The variable has a Null value." 
End If 
執(zhí)行的結(jié)果并不會顯示 The variable has a Null value. 要判斷一個變量是否為 Null 你應(yīng)該使用 IsNull() 函數(shù) 
Dim varTest 
varTest = Null 
If IsNull(varTest) Then 
  Response.Write "The variable has a Null value." 
End If 
當(dāng)你在處理由數(shù)據(jù)庫中所取出的 Null 的資料時, 你必須要很注意, 因為 Null 所代表的是不合法的資料, 當(dāng)某些函數(shù)在處理數(shù)學(xué)運算時, Null 可能會制造一些麻煩, 例如 
Dim varTest 
varTest = Null 
varTest = CLng(varTest) 
執(zhí)行結(jié)果你將看到 "Invalid Use of Null" 的錯誤訊息, 再看看下面的例子 
Dim varTest 
Dim lngTest 
varTest = Null 
lngTest = 2 + varTest 
Response.Write TypeName(lngTest) 
你會發(fā)現(xiàn), Null 加上 2 還是 Null 因此, 當(dāng)你從數(shù)據(jù)庫取得資料后, 你應(yīng)先用 IsNull() 來判斷字段是否為 Null, 再做適當(dāng)?shù)奶幚? 例如 
lngQty = oRs("Quantuty") 
If IsNull(lngQty) Then 
  lngQty = 0 
End If 
希望這篇文章對你有幫助!