在ASP中處理資料庫的NULL記錄

來源:互聯網
上載者:User
資料|資料庫 在許多時候我們使用ASP+資料庫進行網站編程的時候,會遇上讀取某記錄出來和另外一些變數進行運算的情況,如果取的記錄資料為NULL值,那麼可能會造成程式返回錯誤結果,如果每個讀記錄的語句後都加上判斷語句,程式又顯得拖遝,因此,我認為編寫一個專用的函數對讀取的記錄進行自動或半自動識別是很好的辦法。

    根據VBscript的資料類型定義,結合利用VarType函數,構造以下自動處理函數InitdataType,
 輸入兩個參數,要處理資料本身(theDate)和準備輸出的資料類型(theReturnType,整數型): theReturnType強制返回的資料類型 ,同VarType傳回值定義的意義一樣, 'theReturnType 如果忽略: 返回同theDate一樣的資料類型.

   比較常見的NULL返回,對於字串型返回Null 字元串,對各種於數值返回0值,對於邏輯值返回FALSE(假),對於日期

返回最早的日期

函數程式:
Function InitdataType(theDate,theReturnType)
 '返回或強制指示變數子類型的值。theDate 參數可以是任何變數。
 'theReturnType(整數型): 強制返回的資料類型 ,同VarType傳回值定義的意義一樣
 'theReturnType 如果忽略: 返回同theDate一樣的資料類型.

 '下面引用的函數VarType(varname)會返回指示變數子類型的值。,varname 參數可以是任何變數。
 'VarType函數傳回值的意義如下:
 'vbEmpty 0 Empty(未初始化)
 'vbNull  1 Null(無有效資料)
 'vbInteger 2 整數
 'vbLong  3 長整數
 'vbSingle 4 單精確度浮點數
 'vbDouble 5 雙精確度浮點數
 'vbCurrency 6 貨幣
 'vbDate   7 日期
 'vbString  8 字串
 'vbObject  9 Automation 對象
 'vbError  10 錯誤
 'vbBoolean  11 Boolean
 'vbVariant  12 Variant(只和變數數組一起使用)
 'vbDataObject 13 Data Access Objects
 'vb????   14 小數
 'vbByte   17 位元組
 'vbArray  8192 數組

 On Error Resume Next
 'Err.Clear
    dim n_dataType,vo_ReData,vo_renewdata,c_TypeName

    n_dataType = VarType(theDate)
 'c_TypeName = TypeName(theDate)
 If n_dataType<2 then
  if isNumeric(theReturnType) then
   Select Case theReturnType
    case 1
     vo_renewdata=NULL
    case 2
     vo_renewdata=0
    case 3
     vo_renewdata=0
    case 4
     vo_renewdata=0
    case 5
     vo_renewdata=0
    case 6
     vo_renewdata=0
    case 7
     vo_renewdata=0
    case 8
     vo_renewdata=""
    case 11
     vo_renewdata=DEF_False
    case 14
     vo_renewdata=0
    case 17
     vo_renewdata=chr(0)
    case else
     vo_renewdata=theDate
   end Select
  else
   vo_renewdata=theDate
  end if
 else
  if isNumeric(theReturnType) then
   Select Case theReturnType
    case 0
     vo_renewdata=Empty
    case 1
     vo_renewdata=NULL
    case 2
     if isNumeric(theDate) then
      vo_renewdata=cInt(theDate)
     else
      vo_renewdata=Eval("0+" & theDate &"")
      if not isNumeric(vo_renewdata) then vo_renewdata=0
     end if
    case 3
     if isNumeric(theDate) then
      vo_renewdata=cLng(theDate)
     else
      vo_renewdata=Eval("0+" & theDate &"")
      if not isNumeric(vo_renewdata) then vo_renewdata=0
     end if
    case 4
     if isNumeric(theDate) then
      vo_renewdata=cSng(theDate)
     else
      vo_renewdata=Eval("0+" & theDate &"")
      if not isNumeric(vo_renewdata) then vo_renewdata=0
     end if
    case 5
     if isNumeric(theDate) then
      vo_renewdata=cDbl(theDate)
     else
      vo_renewdata=Eval("0+" & theDate &"")
      if not isNumeric(vo_renewdata) then vo_renewdata=0
     end if
    case 6
  &nb



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。