我也试了appendchunk和getchunk 按msdn中的sample可总是不成,不是出错就是image字段依旧为null. 哪位大虾用过请点拔一下!!!

解决方案 »

  1.   

    请问你有没有解决??
    如果解决了,
    发信到[email protected]告诉我怎么做
    谢谢.
      

  2.   

    请问你有没有解决??
    如果解决了,
    发信到[email protected]告诉我怎么做
    谢谢.
      

  3.   

    msdn example:AppendChunk and GetChunk Methods Example (VB)
    This example uses the AppendChunk and GetChunk methods to fill an image field with data from another record.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   ' Open a connection.
       Set cnn1 = New ADODB.Connection
          strCnn = "Provider=sqloledb;" & _
          "Data Source=srv;Initial Catalog=Pubs;User Id=sa;Password=; "
       cnn1.Open strCnn
       
       ' Open the pub_info table.
       Set rstPubInfo = New ADODB.Recordset
       rstPubInfo.CursorType = adOpenKeyset
       rstPubInfo.LockType = adLockOptimistic
       rstPubInfo.Open "pub_info", cnn1, , , adCmdTable
       
       ' Prompt for a logo to copy.
       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)
       
       ' Copy the logo to a variable in chunks.
       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
       
       ' Get data from the user.
       strPubID = Trim(InputBox("Enter a new pub ID" & _
                                " [must be > 9899 & < 9999]:"))
       strPRInfo = Trim(InputBox("Enter descriptive text:"))   ' Add the new publisher to the publishers table to avoid
       ' getting an error due to foreign key constraint.
       cnn1.Execute "INSERT publishers(pub_id, pub_name) VALUES('" & _
                      strPubID & "','Your Test Publisher')"
       
       ' Add a new record, copying the logo in chunks.
       rstPubInfo.AddNew
       rstPubInfo!pub_id = strPubID
       rstPubInfo!pr_info = strPRInfo   lngOffset = 0 ' Reset offset.
       Do While lngOffset < lngLogoSize
          varChunk = LeftB(RightB(varLogo, lngLogoSize - lngOffset), _
             conChunkSize)
          rstPubInfo!logo.AppendChunk varChunk
          lngOffset = lngOffset + conChunkSize
       Loop
       rstPubInfo.Update
       
        ' Show the newly added data.
       MsgBox "New record: " & rstPubInfo!pub_id & vbCr & _
          "Description: " & rstPubInfo!pr_info & vbCr & _
          "Logo size: " & rstPubInfo!logo.ActualSize   ' Delete new records because this is a demonstration.
       rstPubInfo.Requery
       cnn1.Execute "DELETE FROM pub_info " & _
          "WHERE pub_id = '" & strPubID & "'"   cnn1.Execute "DELETE FROM publishers " & _
          "WHERE pub_id = '" & strPubID & "'"   rstPubInfo.Close
       cnn1.Close   End Sub
      

  4.   

    msdn example, just FYI (for your information):MDAC 2.5 SDK - ADOAppendChunk and GetChunk Methods Example (VB)
    This example uses the AppendChunk and GetChunk methods to fill an image field with data from another record.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   ' Open a connection.
       Set cnn1 = New ADODB.Connection
          strCnn = "Provider=sqloledb;" & _
          "Data Source=srv;Initial Catalog=Pubs;User Id=sa;Password=; "
       cnn1.Open strCnn
       
       ' Open the pub_info table.
       Set rstPubInfo = New ADODB.Recordset
       rstPubInfo.CursorType = adOpenKeyset
       rstPubInfo.LockType = adLockOptimistic
       rstPubInfo.Open "pub_info", cnn1, , , adCmdTable
       
       ' Prompt for a logo to copy.
       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)
       
       ' Copy the logo to a variable in chunks.
       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
       
       ' Get data from the user.
       strPubID = Trim(InputBox("Enter a new pub ID" & _
                                " [must be > 9899 & < 9999]:"))
       strPRInfo = Trim(InputBox("Enter descriptive text:"))   ' Add the new publisher to the publishers table to avoid
       ' getting an error due to foreign key constraint.
       cnn1.Execute "INSERT publishers(pub_id, pub_name) VALUES('" & _
                      strPubID & "','Your Test Publisher')"
       
       ' Add a new record, copying the logo in chunks.
       rstPubInfo.AddNew
       rstPubInfo!pub_id = strPubID
       rstPubInfo!pr_info = strPRInfo   lngOffset = 0 ' Reset offset.
       Do While lngOffset < lngLogoSize
          varChunk = LeftB(RightB(varLogo, lngLogoSize - lngOffset), _
             conChunkSize)
          rstPubInfo!logo.AppendChunk varChunk
          lngOffset = lngOffset + conChunkSize
       Loop
       rstPubInfo.Update
       
        ' Show the newly added data.
       MsgBox "New record: " & rstPubInfo!pub_id & vbCr & _
          "Description: " & rstPubInfo!pr_info & vbCr & _
          "Logo size: " & rstPubInfo!logo.ActualSize   ' Delete new records because this is a demonstration.
       rstPubInfo.Requery
       cnn1.Execute "DELETE FROM pub_info " & _
          "WHERE pub_id = '" & strPubID & "'"   cnn1.Execute "DELETE FROM publishers " & _
          "WHERE pub_id = '" & strPubID & "'"   rstPubInfo.Close
       cnn1.Close   End Sub
      

  5.   

    msdn example:MDAC 2.5 SDK - ADO
     AppendChunk and GetChunk Methods Example (VB)
    This example uses the AppendChunk and GetChunk methods to fill an image field with data from another record.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   ' Open a connection.
       Set cnn1 = New ADODB.Connection
          strCnn = "Provider=sqloledb;" & _
          "Data Source=srv;Initial Catalog=Pubs;User Id=sa;Password=; "
       cnn1.Open strCnn
       
       ' Open the pub_info table.
       Set rstPubInfo = New ADODB.Recordset
       rstPubInfo.CursorType = adOpenKeyset
       rstPubInfo.LockType = adLockOptimistic
       rstPubInfo.Open "pub_info", cnn1, , , adCmdTable
       
       ' Prompt for a logo to copy.
       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)
       
       ' Copy the logo to a variable in chunks.
       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
       
       ' Get data from the user.
       strPubID = Trim(InputBox("Enter a new pub ID" & _
                                " [must be > 9899 & < 9999]:"))
       strPRInfo = Trim(InputBox("Enter descriptive text:"))   ' Add the new publisher to the publishers table to avoid
       ' getting an error due to foreign key constraint.
       cnn1.Execute "INSERT publishers(pub_id, pub_name) VALUES('" & _
                      strPubID & "','Your Test Publisher')"
       
       ' Add a new record, copying the logo in chunks.
       rstPubInfo.AddNew
       rstPubInfo!pub_id = strPubID
       rstPubInfo!pr_info = strPRInfo   lngOffset = 0 ' Reset offset.
       Do While lngOffset < lngLogoSize
          varChunk = LeftB(RightB(varLogo, lngLogoSize - lngOffset), _
             conChunkSize)
          rstPubInfo!logo.AppendChunk varChunk
          lngOffset = lngOffset + conChunkSize
       Loop
       rstPubInfo.Update
       
        ' Show the newly added data.
       MsgBox "New record: " & rstPubInfo!pub_id & vbCr & _
          "Description: " & rstPubInfo!pr_info & vbCr & _
          "Logo size: " & rstPubInfo!logo.ActualSize   ' Delete new records because this is a demonstration.
       rstPubInfo.Requery
       cnn1.Execute "DELETE FROM pub_info " & _
          "WHERE pub_id = '" & strPubID & "'"   cnn1.Execute "DELETE FROM publishers " & _
          "WHERE pub_id = '" & strPubID & "'"   rstPubInfo.Close
       cnn1.Close   End Sub