此頁沒有內(nèi)容條目
內(nèi)容

AppendChunk 和 GetChunk 方法范例

該范例使用 AppendChunk 和 GetChunk 方法用其他記錄中的數(shù)據(jù)填寫圖像字段。

Public Sub AppendChunkX()

   Dim cnn1 As ADODB.Connection

   Dim rstPubInfo As ADODB.Recordset

   Dim strCnn As String

   Dim strPubID As String

   Dim strPRInfo As String

   Dim lngOffset As Long

   Dim lngLogoSize As Long

   Dim varLogo As Variant

   Dim varChunk As Variant

   Const conChunkSize = 100

   ' 打開連接。

   Set cnn1 = New ADODB.Connection

      strCnn = "Provider=sqloledb;" & _

      "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "

   cnn1.Open strCnn

   ' 打開 pub_info 表。

   Set rstPubInfo = New ADODB.Recordset

   rstPubInfo.CursorType = adOpenKeyset

   rstPubInfo.LockType = adLockOptimistic

   rstPubInfo.Open "pub_info", cnn1, , , adCmdTable

   ' 提示復(fù)制徽標。

   strMsg = "Available logos are : " & vbCr & vbCr

   Do While Not rstPubInfo.EOF

      strMsg = strMsg & rstPubInfo!pub_id & vbCr & _

         Left(rstPubInfo!pr_info, InStr(rstPubInfo!pr_info, ",") - 1) & _

         vbCr & vbCr

      rstPubInfo.MoveNext

   Loop

   strMsg = strMsg & "Enter the ID of a logo to copy:"

   strPubID = InputBox(strMsg)

   ' 將徽標大塊復(fù)制到變量中。

   rstPubInfo.Filter = "pub_id = '" & strPubID & "'"

   lngLogoSize = rstPubInfo!logo.ActualSize

   Do While lngOffset < lngLogoSize

      varChunk = rstPubInfo!logo.GetChunk(conChunkSize)

      varLogo = varLogo & varChunk

      lngOffset = lngOffset + conChunkSize

   Loop

   ' 從用戶處得到數(shù)據(jù)。

   strPubID = Trim(InputBox("Enter a new pub ID:"))

   strPRInfo = Trim(InputBox("Enter descriptive text:"))

   ' 添加新記錄,大塊復(fù)制徽標。

   rstPubInfo.AddNew

   rstPubInfo!pub_id = strPubID

   rstPubInfo!pr_info = strPRInfo

   lngOffset = 0 ' 重置位移。

   Do While lngOffset < lngLogoSize

      varChunk = LeftB(RightB(varLogo, lngLogoSize - lngOffset), _

         conChunkSize)

      rstPubInfo!logo.AppendChunk varChunk

      lngOffset = lngOffset + conChunkSize

   Loop

   rstPubInfo.Update

    ' 顯示新添加的數(shù)據(jù)。

   MsgBox "New record: " & rstPubInfo!pub_id & vbCr & _

      "Description: " & rstPubInfo!pr_info & vbCr & _

      "Logo size: " & rstPubInfo!logo.ActualSize

   ' 刪除新記錄,因為這只是演示。

   rstPubInfo.Requery

   cnn1.Execute "DELETE FROM pub_info " & _

      "WHERE pub_id = '" & strPubID & "'"

   rstPubInfo.Close

   cnn1.Close

End Sub