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的“加载”并将图片保存到字节数组。示例以一种兼容的方式进行序列化的方法。然后,如果它是客户端,则可以使用简单分配来更新记录集字段。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...