发信人: cobe() 
整理人: cobe(2000-09-05 10:41:44), 站内信件
 | 
 
 
我记得以前有人问过这个问题,但没有得到回复,今天看ADO帮助
 正好有例子,干脆贴进来。
 --------------------------------------------------------------------
 AppendChunk 和 GetChunk 方法范例
 该范例使用 AppendChunk 和 GetChunk 方法用其他记录中的数据填写图像字段。 
 
 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
    
    ' 提示复制徽标。
    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)
    
    ' 将徽标大块复制到变量中。
    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
    
    ' 从用户处得到数据。
    strPubID = Trim(InputBox("Enter a new pub ID:"))
    strPRInfo = Trim(InputBox("Enter descriptive text:"))
    
    ' 添加新记录,大块复制徽标。
    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
    
     ' 显示新添加的数据。
    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
 
  -- 脑子不好使,就试试工具吧--〉PersonalNote
 帮助你管理个人日程
 上网没节度?“说下就下”来帮你
 到这里下载:http://vbsworld.yeah.net
  ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.130.227.1]
  | 
 
 
 |