如何正確處理資料庫中的Null

2021-08-21 23:04:01 字數 2081 閱讀 5658

對於初學者,在處理資料庫中的null資料型態是有一點麻煩的事,在這篇文章文章中我們將談談null,你將會了解到如何知道乙個值是null,哪些函式可以或不可以處理null首先,我們必須知道在vbscript中,variant是唯一的一種資料型態,對於那些已經熟悉其它語言的程式開發者,可能會感到有點不習慣。使用variant的好處在於其相當有彈性,因為variant可以儲存任何資料型別,例如,整數,字串,日期時間,甚至包括物件及陣列。然而彈性是必須付出代價的,因為指定variant可能會比指定特殊資料型別所用到的記憶體來得多

在variant資料型別中還有兩種很特殊的子型別(subtype):empty及null,事實上稱子型別可能不太恰當,因為他們並不儲存某些值,當乙個變數的資料子型別為empty或null,他們的值就是empty或null

empty

乙個變數在被宣告後,但在其被指定乙個值之前,這個變數的資料子型別就是empty,換句話說,empty就相當於"尚未初始化",我們來看看下面的例子

dimvartest

response.writetypename(vartest)

其執行結果應該為empty,因此empty可以說是乙個變數的初始資料子型別及初始值,empty只是代表乙個變數的狀態,試試下面的例子

dimvartest

response.writeclng(vartest)

response.writecstr(vartest)

第一行的程式將顯示0,因為empty被表示為整數時就是0,第二行執行之結果將是什麼都不顯示,因為當被表示為字串時empty就是empty,或可說是長度為零的字串

vartest=empty

有兩種方式你可以判斷乙個變數是否為empty

ifvartest=emptythen

response.write"thevariableisempty."

endif

或是ifisempty(vartest)then

response.write"thevariableisempty."

endif

null

null這個資料子型別和empty很類似,但不同點在於empty代表乙個變數尚未被初始化,也就是還沒有被賦予任何的值,而乙個變數為null只有在你指定它為null之後。最常遇到null的機會應該是在處理資料庫的時候,當乙個字段沒有資料時,便是null

指定和判斷null的方法與empty很類似

vartest=null

然而你只能使用isnull()函式來判斷null,這是因為null所代表的是不合法的資料,你可以試試以下的例子

dimvartest

vartest=null

ifvartest=nullthen

response.write"thevariablehasanullvalue."

endif

執行的結果並不會顯示thevariablehasanullvalue.要判斷乙個變數是否為null你應該使用isnull()函式

dimvartest

vartest=null

ifisnull(vartest)then

response.write"thevariablehasanullvalue."

endif

當你在處理由資料庫中所取出的null的資料時,你必須要很注意,因為null所代表的是不合法的資料,當某些函式在處理數**算時,null可能會製造一些麻煩,例如

dimvartest

vartest=null

vartest=clng(vartest)

執行結果你將看到"invaliduseofnull"的錯誤訊息,再看看下面的例子

dimvartest

dimlngtest

vartest=null

lngtest=2+vartest

response.writetypename(lngtest)

你會發現,null加上2還是null因此,當你從資料庫取得資料後,你應先用isnull()來判斷字段是否為null,再做適當的處理,例如

lngqty=ors("quantuty")

ifisnull(lngqty)then

lngqty=0

endif

如何正確處理中病毒後的電腦

如何正確處理中病毒後的電腦 常在河邊走,哪能不濕鞋呢?網際網路上各種病毒在不停的流竄,作為連線在網路上的電腦,儘管我們已經做了各種防範,但還是不能避免,稍不留神就會中招。而現在我們學到的多是如何防範電腦中毒的知識,但是對於已經中毒的電腦如何處理卻知之甚少。下面我們就向大家介紹中毒後一些緊急處理措施。...

關於資料庫中的NULL

1 不能對null使用等號 2 不等對null相加 相乘 結果都是null 10倍的null仍舊是null 3 不要使用特殊標記 1 0 來代替null 4 null不是字串 null string 返回null 並不是string 5 not null 返回null 並不是true 6 null ...

如何正確處理直播過程中的高併發問題

如果是網頁直播間,當前站點沒有做防盜煉的話,就很容易遭受惡意請求。而過多的惡意請求,會對本身流量就比較大的直播間造成很大負擔。比如說有a b兩個直播 a站享用了b站的資源,頁面嵌入了b站的 js css。a站並不關心b站會消耗怎樣的流量,但是對於b站來說,如果呼叫了b站的 js css。在使用者訪問...