sql sever 2008中photo列是image类型,存的是二进制数据,现在想在vb6.0中通过image显示出图片,但总是提示我文件打开途径错误

rchcmbv 2021-01-01 09:02:06
Public Sub showimage(imagen As Image, adodcn As Adodc) Dim bytechunk() As Byte fieldsize = adodcn.Recordset.Fields("Photo").ActualSize If fieldsize <= 0 Then imagen.Picture = LoadPicture("") Exit Sub End If sourcefile = FreeFile Open tempfile For Binary Access Write As sourcefile numblocks = fieldsize \ blocksize leftover = fieldsize Mod blocksize If leftover <> 0 Then ReDim bytechunk(leftover) As Byte bytechunk()=adodcn.Recordset.Fields("Photo").GetChunk(leftover) Put sourcefile, , bytechunk() End If For i = 1 To numblocks ReDim bytechunk(blocksize) As Byte bytechunk() = adodcn.Recordset.Fields("Photo").GetChunk(blocksize) Put sourcefile, , bytechunk() Next i Close sourcefile imagen.Picture = LoadPicture(tempfile) Kill (tempfile) End Sub 错误停在open tempfile for binary access write as sourcefile 这个是写的读取图片函数
...全文
2288 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
饮水需思源 2021-03-08
  • 打赏
  • 举报
回复
这个参考看看: Private Sub LoadData() Dim iStm As ADODB.Stream Dim iRe As ADODB.Recordset Dim strFileName As String '文件名 On Error GoTo ErrHandle '打开表 Set iRe = New ADODB.Recordset '得到最新添加的纪录 iRe.Open "select top 1 * from InventoryImage where AutoID=" & g_lngAutoId & "", Rac, adOpenKeyset, adLockReadOnly If iRe.RecordCount > 0 Then If Not (IsNull(iRe!cFileName) Or iRe!cFileName = "") Then m_strFileName = iRe!cFileName Else m_strFileName = "1.jpg" End If m_strFileName = App.Path & "\" & m_strFileName '保存到文件 Set iStm = New ADODB.Stream With iStm .Mode = adModeReadWrite .Type = adTypeBinary .Open .Write iRe("InvImage") '这里注意了,如果当前目录下存在文件,会报一个文件写入失败的错误. If Dir(m_strFileName) <> "" Then Kill m_strFileName .SaveToFile m_strFileName End With Image1.Picture = LoadPicture(m_strFileName) '关闭对象 iRe.Close iStm.Close End If Exit Sub ErrHandle: MsgBox "操作失败,错误原因为:" & Err.Description, vbExclamation, "提示" Exit Sub End Sub
饮水需思源 2021-01-12
  • 打赏
  • 举报
回复
将图片文件下载到程序所在目录下,再加载到控件
浪客 2021-01-04
  • 打赏
  • 举报
回复
用Open方式你得先把图片保存到临时文件里
不懂别说哎 2021-01-04
  • 打赏
  • 举报
回复
Open tempfile For Binary Access Write As sourcefile 这句话是打开文件的命令,报错必然是报打开文件错误啊 命令格式: Open 文件路径 For 打开方式 as 文件号 确保命令内的各项参数的正确
三楼の郎 2021-01-04
  • 打赏
  • 举报
回复
用Adodb.Stream操作吧,GetChunk/AppendChunk不如Stream好用 具体参考https://blog.csdn.net/dzweather/article/details/8844248
ZHRXJR 2021-01-02
  • 打赏
  • 举报
回复
好好看看VB是怎么打开SQL 2008 数据库的 Image 的二进制数据图片的吧,不是读取图片文件,而是操作数据库。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧