Function CopyFieldToFile(rst As Adodb.Recordset, fd As String, strFileName As String) As String
Dim FileNum As Integer
Dim Buffer() As Byte
Dim BytesNeeded As Long
Dim Buffers As Long
Dim Remainder As Long
Dim Offset As Long
Dim R As Integer
Dim i As Long
Dim ChunkSize As Long ChunkSize = 65536
BytesNeeded = rst(fd).ActualSize
If BytesNeeded > 0 Then
' Calculate the number of buffers needed to copy
Buffers = BytesNeeded \ ChunkSize
Remainder = BytesNeeded Mod ChunkSize
' Get a unique, temporary filename: If Dir(strFileName) <> "" Then
Kill strFileName
End If
FileNum = FreeFile
Open strFileName For Binary As #FileNum
frmP1.Show
frmP1.Timer1.Interval = 100
For i = 0 To Buffers - 1
DoEvents
ReDim Buffer(ChunkSize)
Buffer = rst(fd).GetChunk(ChunkSize)
Put #FileNum, , Buffer()
Offset = Offset + ChunkSize
Next
ReDim Buffer(Remainder)
Buffer = rst(fd).GetChunk(Remainder)
Put #FileNum, , Buffer()
Close #FileNum
frmP1.Timer1.Interval = 0
Unload frmP1
End If
CopyFieldToFile = strFileName
End Function
这段代码是读的,往里面写的类似 使用AppendChunk
Dim FileNum As Integer
Dim Buffer() As Byte
Dim BytesNeeded As Long
Dim Buffers As Long
Dim Remainder As Long
Dim Offset As Long
Dim R As Integer
Dim i As Long
Dim ChunkSize As Long ChunkSize = 65536
BytesNeeded = rst(fd).ActualSize
If BytesNeeded > 0 Then
' Calculate the number of buffers needed to copy
Buffers = BytesNeeded \ ChunkSize
Remainder = BytesNeeded Mod ChunkSize
' Get a unique, temporary filename: If Dir(strFileName) <> "" Then
Kill strFileName
End If
FileNum = FreeFile
Open strFileName For Binary As #FileNum
frmP1.Show
frmP1.Timer1.Interval = 100
For i = 0 To Buffers - 1
DoEvents
ReDim Buffer(ChunkSize)
Buffer = rst(fd).GetChunk(ChunkSize)
Put #FileNum, , Buffer()
Offset = Offset + ChunkSize
Next
ReDim Buffer(Remainder)
Buffer = rst(fd).GetChunk(Remainder)
Put #FileNum, , Buffer()
Close #FileNum
frmP1.Timer1.Interval = 0
Unload frmP1
End If
CopyFieldToFile = strFileName
End Function
这段代码是读的,往里面写的类似 使用AppendChunk
我的email:[email protected]