blic Function AppendBlobFromFile(blobColumn As ADODB.Field, ByVal FileName) As Boolean Dim FileNumber As Integer ’文件号 Dim DataLen As Long ’文件长度 Dim Chunks As Long ’数据块数 Dim ChunkAry() As Byte ’数据块数组 Dim ChunkSize As Long ’数据块大小 Dim Fragment As Long ’零碎数据大小 Dim lngI As Long ’计数器 On Error GoTo ErrorHandle AppendBlobFromFile = False ChunkSize = 2048 ’限制每次读取的块大小为 2K FileNumber = FreeFile ’产生随机的文件号 Open FileName For Binary Access Read As FileNumber ’打开图像文件 DataLen = LOF(FileNumber) ’获得文件长度 If IsNull(blobColumn) Then Exit Function If DataLen = 0 Then ’文件长度为0 Close FileNumber AppendBlobFromFile = True Exit Function End If Chunks = DataLen / ChunkSize ’数据块的个数 Fragment = DataLen Mod ChunkSize If Fragment > 0 Then ’先写零碎数据 ReDim ChunkAry(Fragment - 1) Get FileNumber, , ChunkAry() ’读出文件 blobColumn.AppendChunk ChunkAry ’调用AppendChunk函数写数据 End If ReDim ChunkAry(ChunkSize - 1) ’为数据块开辟空间 For lngI = 1 To Chunks ’循环读出所有数据块 Get FileNumber, , ChunkAry() ’读出一块数据 blobColumn.AppendChunk ChunkAry ’在数据库中增加数据块 Next lngI Close FileNumber ’ 上一页 [1] [2]
Tags:
|