<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      VB數據庫編程經驗2則

      [摘要]在往SQL Server數據庫中添加記錄時,每個字段必須給予明確賦值(即在沒有給數據表設定缺省規則或給每個字段設定缺省值的情況下),否則便發生錯誤。因此我用VB編寫了一個處理函數,將其放入標準模塊,...
      在往SQL Server數據庫中添加記錄時,每個字段必須給予明確賦值(即在沒有給數據表設定缺省規則或給每個字段設定缺省值的情況下),否則便發生錯誤。因此我用VB編寫了一個處理函數,將其放入標準模塊,以供相應程序調用。函數首先判斷是否給字段賦值,若沒有,則根據字段類型的不同賦予不同數值(數字賦零,字符賦空格)。程序如下:

        ′zd變量采用變體類型

        Function nonull(zd As Variant) As Variant

        If IsNull(zd) Then

        ′字段沒有賦值,判斷其類型

        If zd.Type = 12 Then

        ′字符型字段,賦空格

        nonull = " "

        Else

        ′數字型字段,賦0

        nonull = 0

        End If

        Else

        nonull = zd

        End If

        End Function

        多字段記錄的錄入

        如果我們需要編寫一個錄入程序,向某個SQL Server數據表(SJB)中錄入數據,而這個數據表中包含有多個字段,假設有30個字段,需通過Insert INTO語句完成。

        Insert INTO SJB Value(A0,A1,A2,...,A29)

        這里A0、A1...A29為字段的錄入值,其中,若字段類型為字符型,需用引號括起。并且,如果操作者在錄入數據時,對某些字段沒有賦予明確值,則還需借助前面給出的處理函數給這些字段賦予相應的0或‘ ’。雖然,我們在編程時可依照Insert INTO語句句法依次羅列出30個字段值,然而,變通一下,利用循環語句,不僅可以達到異曲同工的效果,而且使得程序不再冗長、煩瑣,可讀性好。下面列出相關程序片段:

        ...

        Dim sqlstr As String

        Dim sqlstr1 As String

        Dim i As Integer

        For i = 0 To 29

        ′rs.rdoColumns(I)為數據表中的某一字段

         If rs.rdoColumns(i).Type = 12 Then

        ′字段類型為字符,在兩側用引號括起

        ′函數nonull()用于防止空值出現

         sqlstr = sqlstr && "'" && nonull(A(i)) && "',"

         Else

        ′字段類型為數字型

         sqlstr = sqlstr && nonull(A(i)) && ","

         End If

        Next

        ′去掉最后一個逗號分隔符

        sqlstr = Left(Trim(sqlstr), Len(Trim(sqlstr)) - 1)

        ′插入一條記錄到數據表中

        sqlstr1 = "insert into sjb values(" && sqlstr && ")"

         ...

        ′執行插入語句

        cn.Execute sqlstr1

        ... 


      日韩精品一区二区三区高清