!出错了!用ADO打开Access数据库写图片到其中一个二进制格式的字段
用ADO打开Access数据库,把一个图片写到其中一个二进制格式的字段里,数据库
有四个字段: no long类型 用于存id
pict binary类型 用于存图片
name text类型 用于存图片名及路径
about text类型 用于存图片的描述
现在运行时用错误,错误如下:
Private Function appendfun(ByVal txt0 As String, ByVal txt1 As String,
ByVal txt2 As String)
Dim lngfilelength As Long '所打开文件的长度
Dim lngblocksize As Long '每一块读娶文件的长度
Dim lngblockcount As Long '文件要分为多少块
Dim lnglastblock As Integer '最后一块的大小
Dim lngblockindex As Long '用于控制读数据的循环
Dim lngposition As Long '用于记录读出文件的指针
Dim btyget() As Byte '用于传送数据的二进制数组
lngblocksize = 2000 '每一块的大小
If cnn.State = adStateOpen Then
cnn.Close
End If
cnn.Open strconnect
rst.Open "gamephoto_tbl", cnn, adOpenKeyset, adLockPessimistic
If strfilename <> "" Then
rst.AddNew
rst.Fields("no") = Val(txt0)
rst.Fields("name") = strfilename
rst.Fields("about") = txt2
'这里没报错呀
Open strfilename For Binary As #1
lngfilelength = LOF(1)
lngblockcount = lngfilelength \ lngblocksize
lnglastblock = lngfilelength Mod lngblocksize
For lngblockindex = 1 To lngblockcount
Get #1, , btyget()
'这里错了提示“无效指针错误”
rst.Fields("pict").AppendChunk btyget()
'改为rst.Fields(1).AppendChunk btyget()也一样
'这里错了提示“无效指针错误”
lngposition = lngposition + lngblocksize
Next
If lnglastblock > 0 Then
ReDim btyget(lnglastblock)
Get #1, , btyget()
rst.Fields("pict").AppendChunk btyget()
End If
rst.Update
Close #1
MsgBox "OK"
cnn.Close
Unload Me
Else
MsgBox "请选择文件后再要求添加", vbOKOnly, "注意"
Unload Me
End If
End Function
小弟刚学数据库不久,请大家多多帮忙。