| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 915 人关注过本帖, 1 人收藏
标题:VB6.0中,如何将照片存储到ACCESS数据中,求代码?以及方法?
只看楼主 加入收藏
wangyiaihu
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2020-4-22
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:11 
VB6.0中,如何将照片存储到ACCESS数据中,求代码?以及方法?
VB6.0中,如何将照片存储到ACCESS数据中,求代码?以及方法?

搜索更多相关主题的帖子: 方法 ACCESS 代码 数据 照片 
2020-05-27 15:05
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:117
帖 子:1012
专家分:5449
注 册:2016-5-10
收藏
得分:5 
Access数据库存储图片大概有三种方法:
1、是将图片放在一个目录里,数据库存储目录路径及图片文件名和扩展名
2、是将图片转换成二进制数据,在Access数据库的 OLE 对象 数据类型中存储二进制数据
3、是使用 ADO 的 Stream 对象存储在Access数据库的 OLE 对象 数据类型中
具体看需要了,代码太多,根据数据库不同,代码也不同。

请不要选我做版主,不要选我做版主,不要选我做版主,不要选我做版主!!!
2020-05-27 16:20
wangyiaihu
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2020-4-22
收藏
得分:0 
回复 2楼 ZHRXJR
第二种,转换成二进制的那种存储,相要的是这种,
2020-05-28 05:14
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:208
帖 子:2003
专家分:11148
注 册:2014-12-6
收藏
得分:5 
百度一下一大堆。

能编个毛线衣吗?
2020-05-28 09:40
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:279
帖 子:4606
专家分:28589
注 册:2008-10-15
收藏
得分:5 

授人于鱼,不如授人于渔
早已停用QQ了
2020-05-28 09:48
dpf520
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2020-5-23
收藏
得分:5 
学习中
2020-05-28 11:29
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:117
帖 子:1012
专家分:5449
注 册:2016-5-10
收藏
得分:0 
回复 3楼 wangyiaihu

一般已经操作数据库了,均采用第三种方法,代码简单,非常容易操作,使用 ADO 的 Stream 对象操作在Access数据库的 OLE 对象 。
当然必须有存储图片的系统管理员上传代码及用户读取图片点代码,QQ 联系我。

请不要选我做版主,不要选我做版主,不要选我做版主,不要选我做版主!!!
2020-05-28 19:05
wangyiaihu
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2020-4-22
收藏
得分:0 
回复 7楼 ZHRXJR
好的
2020-05-29 15:35
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:208
帖 子:2003
专家分:11148
注 册:2014-12-6
收藏
得分:0 
针对二进制写入数据库的,给个函数你吧。
建议坚持学习和共享原则,不要公开要求私信联系,来吊其他人胃口(唉,为给楼主满意答案,我又在角落里翻出我有VB编写环境的05年的笔记本了。该函数已调试通过):
程序代码:
Function writedb_bin(Filename As String, rst As ADODB.Recordset, Fieldname As String) As Boolean
  '以二进制模式读取文件Filename并将读取数据以二进制模式写入到数据库记录集rst的二进制字段Fieldname中
  Dim b() As Byte, i As Long, l As Long, f As Long, m As Long
  On Error Resume Next    '设置错误处理模式
  Err.Clear
  writedb_bin = False
  If Dir(Filename) = "" Or rst.State = 0 Then Exit Function  '如果要写入的文件不存在或记录集是关闭状态则返回false
  l = FileLen(Filename)   '获取文件长度
  i = l \ 16384           '二进制文件缓冲长度按16384字节读取,得到读取次数
  m = l Mod 16384         '文件缓冲读取次数读完后剩余字节数(文件长度不一定是16384的整数倍)
  f = FreeFile            '获取一个空余的文件号
  ReDim b(16383)          '设置文件读入缓冲区
  Open Cmdg.Filename For Binary Access Read As f
  '按二进制模式读入文件并写入数据库指定字段中
    While i > 0
      Get #f, , b
      rst.Fields(Fieldname).AppendChunk b    '按16384字节写入数据库指定字段
      DoEvents
      i = i - 1
    Wend
    If m > 0 Then
      ReDim b(m - 1)
      Get #f, , b
      rst.Fields(Fieldname).AppendChunk b       '将余下字节写入数据库指定字段
    End If
  Close #f
  If Err.Number = 0 Then writedb_bin = True  '如果错误代码为0则返回写入成功标志
End Function


假设已建立数据库连接conn,该数据库中有一个数据表“二进制文件读写测试表”,该表中有一个属性为binnary的字段“二进制字段”,调用上述函数的测试代码如下:
dim rst as new adodb.recordset
rst.open "select * from 二进制文件读写测试表",conn, adOpenKeyset, adLockOptimistic
rst.addnew
if writedb_bin("c:\test.jpg",rst,"二进制字段")=true then
  msgbox "图片写入数据库成功"
else
  msgbox "失败"
endif
rst.update
rst.close


[此贴子已经被作者于2020-5-29 16:56编辑过]


能编个毛线衣吗?
2020-05-29 16:26
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:208
帖 子:2003
专家分:11148
注 册:2014-12-6
收藏
得分:0 
对了,读取二进制字段的方法是“rst.Fields(【字段名】).GetChunk(数据长度)”,希望楼主能由此及彼,自己解决读取方法,该方法可配合5楼风版主的方法一起使用,把数据直接读入到容器中,如果是图片,可以直接在图片控件中显示出来(我一般是写入到临时图片文件中在载入图片控件的)。

能编个毛线衣吗?
2020-05-29 16:39
快速回复:VB6.0中,如何将照片存储到ACCESS数据中,求代码?以及方法?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055313 second(s), 8 queries.
Copyright©2004-2020, BCCN.NET, All Rights Reserved