这是完成读取的部分代码。
Public Sub AppendChunkX()
 Dim Cn As New ADODB.Connection
 Dim rsRead As New ADODB.Recordset
 Dim strChunk As String
 Dim Offset As Long
 Dim Totalsize As Long
 Dim ChunkSize As Long Set Cn = New ADODB.Connection
      strCnn = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User       ID=sa;Initial Catalog=InforReportEffect;Data Source=INFORREPORT;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=INFORREPORT;Use Encryption for Data=False;Tag with column collation when possible=False "
 Cn.Open strCnn
 rsRead.CursorType = adOpenStatic
 rsRead.Open "select img1 from binary", Cn
 ChunkSize = 100
 Totalsize = rsRead("img1").ActualSize
 If rsRead("img1").Type = adBinary Then
    Do While Offset < Totalsize
       strChunk = rsRead("img1").GetChunk(ChunkSize)
       Offset = Offset + ChunkSize
    Loop
 End If
 Debug.Print strChunk
 rsRead.Close
End Sub但是在strChunk = rsRead("img1").GetChunk(ChunkSize)老是报错提示:run_error "3219",在此环境中不允许操作。
请高手帮忙解决一下。
谢谢!!

解决方案 »

  1.   

    兄弟姐妹们帮帮忙吧。我从网上拷贝了关于取二进制数据的代码。但在本地上,还是报同样的错误,不知为什么?
    知悉,若对该字段使用 GetChunk 方法, Field 对象的 Attributes 属性中的 adFldLong 位设置为 True,而attributes属性值好像是只读的。我想是不是应该对adFLdlong赋值?怎么操作?或是其他原因?
      

  2.   

    没有问题啊,你按照我的代码中的形式试试看 Dim Cn As New ADODB.Connection
     Dim rsRead As New ADODB.Recordset
     Dim strChunk As String
     Dim Offset As Long
     Dim Totalsize As Long
     Dim ChunkSize As Long Set Cn = New ADODB.Connection
          strCnn = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=进销存;Data Source=super"
     Cn.Open strCnn
     
     rsRead.Open "select fdata from filedb", Cn, adOpenForwardOnly, adLockReadOnly
     
     ChunkSize = 100
     
     Totalsize = rsRead("fdata").ActualSize
     
     If rsRead("fdata").Type = 205 Then
        Do While Offset < Totalsize
           strChunk = rsRead("fdata").GetChunk(ChunkSize)
           Offset = Offset + ChunkSize
        Loop
     End If
     Debug.Print strChunk
     rsRead.Close
     Cn.Close