程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> VB數據庫編程經驗兩則

VB數據庫編程經驗兩則

編輯:VB綜合教程
空字段的處理
  
  在往SQLServer數據庫中添加記錄時,每個字段必須給予明確賦值(即在沒有給數據表設定缺省規則或給每個字段設定缺省值的情況下),否則便發生錯誤。因此我用VB編寫了一個處理函數,將其放入標准模塊,以供相應程序調用。函數首先判斷是否給字段賦值,若沒有,則根據字段類型的不同賦予不同數值(數字賦零,字符賦空格)。程序如下:
  
  ′zd變量采用變體類型
  
  Functionnonull(zdAsVariant)AsVariant
  
  IfIsNull(zd)Then
  
  ′字段沒有賦值,判斷其類型
  
  Ifzd.Type=12Then
  
  ′字符型字段,賦空格
  
  nonull=""
  
  Else
  
  ′數字型字段,賦0
  
  nonull=0
  
  EndIf
  
  Else
  
  nonull=zd
  
  EndIf
  
  EndFunction
  
  多字段記錄的錄入
  
  如果我們需要編寫一個錄入程序,向某個SQLServer數據表(SJB)中錄入數據,而這個數據表中包含有多個字段,假設有30個字段,需通過InsertINTO語句完成。
  
  InsertINTOSJBValue(A0,A1,A2,...,A29)
  
  這裡A0、A1...A29為字段的錄入值,其中,若字段類型為字符型,需用引號括起。並且,如果操作者在錄入數據時,對某些字段沒有賦予明確值,則還需借助前面給出的處理函數給這些字段賦予相應的0或‘'。雖然,我們在編程時可依照InsertINTO語句句法依次羅列出30個字段值,然而,變通一下,利用循環語句,不僅可以達到異曲同工的效果,而且使得程序不再冗長、煩瑣,可讀性好。下面列出相關程序片段:
  
  ...
  
  DimsqlstrAsString
  
  Dimsqlstr1AsString
  
  DimiAsInteger
  
  Fori=0To29
  
  ′rs.rdoColumns(I)為數據表中的某一字段
  
  Ifrs.rdoColumns(i).Type=12Then
  
  ′字段類型為字符,在兩側用引號括起
  
  ′函數nonull()用於防止空值出現
  
  sqlstr=sqlstr&&"注釋:"&&nonull(A(i))&&"注釋:,"
  
  Else
  
  ′字段類型為數字型
  
  sqlstr=sqlstr&&nonull(A(i))&&","
  
  EndIf
  
  Next
  
  ′去掉最後一個逗號分隔符
  
  sqlstr=Left(Trim(sqlstr),Len(Trim(sqlstr))-1)
  
  ′插入一條記錄到數據表中
  
  sqlstr1="insertintosjbvalues("&&sqlstr&&")"
  
  ...
  
  ′執行插入語句
  
  cn.Executesqlstr1
  
  ...->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved