如何解决vb 6.0将图像位图插入ms Access数据库
| 为什么没有插入我的图像?这是我的代码。Sub SaveToDBs(strImagePath As String,fname As String)
rs.Close
rs.Open \"Sheet1\",conn,adOpenDynamic,adLockBatchOptimistic,adCmdTable
Dim bytBLOB() As Byte
MsgBox strImagePath
Dim intNum As Integer
With rs
intNum = FreeFile
Open strImagePath For Binary As #intNum
ReDim bytBLOB(FileLen(strImagePath))
\'Read data and close file
Get #intNum,bytBLOB
Close #1
.Fields(fname).AppendChunk bytBLOB
.Update
End With
MsgBox \"done\"
End Sub
我有“完成”的msgbox,但未插入图片!
解决方法
我通常将ADODB.Stream用于此类事情-我发现比分块方法更容易理解。
Sub SaveToDBs(strImagePath As String,fname As String)
rs.Close
rs.Open \"Sheet1\",conn,adOpenDynamic,adLockBatchOptimistic,adCmdTable
MsgBox strImagePath
Dim intNum As Integer
Dim myStream as ADODB.Stream
With rs
.AddNew
Set myStream = new ADODB.Stream
myStream.Type = adTypeBinary
myStream.LoadFromFile(strImagePath)
.Fields(fname) = myStream.Read
.Update
Set myStream = Nothing
End With
MsgBox \"done\"
End Sub
ADODB.Stream是从ADO版本2.5添加的:
ADO版本历史
ADO Stream文档
,您必须将位图保留在结构化存储中,才能使MS Access绑定按预期工作。
看一下Edanmo的“加载”并将图片保存到字节数组。示例以一种兼容的方式进行序列化的方法。然后,如果它是客户端,则可以使用简单分配来更新记录集字段。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。