找回密码
 加入
搜索
查看: 2008|回复: 9

[系统综合] Access数据库写入和读取图片等二进制文件?

[复制链接]
发表于 2019-7-27 20:42:32 | 显示全部楼层 |阅读模式
看了这么久帖子,没有一篇完整描述怎么向Access数据库写入图片等二进制文件,以及如何读取。虽说Access有点过时,但我想用,请知道的大侠们放出源码,学习学习,不胜感激,谢谢!
发表于 2019-7-28 21:56:09 | 显示全部楼层
zmdzhxj 发表于 2019-7-28 20:07
不好意思,刚才出去了。感谢您的用心。第一次发帖还没摸到门道,直接回复您不能发附件,只有重新发了。现把 ...



#AutoIt3Wrapper_UseX64 = n
;#include <Access.au3>
#include <WindowsConstants.au3>
$mdb_data_path = "DB0a.mdb"
$mdb_data_pwd = ""
$T = ""
$tblname = "mydb" ;表名
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
$RS = ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
Sleep(1000)
$hHandle1 = FileOpen("捕获2.PNG", 16)
$fRead1 = Binary(FileRead($hHandle1))
$addfld.Execute("insert into mydb (Name,Data) values ('捕获2.PNG'," & $fRead1 & ")");添加一条
;$RS.close
;$addfld.close
MsgBox(0, "提示:", "添加一条录入!", 1)
_duXCICO()
;EndFunc   ;==>Example
Func _duXCICO()
        Global $dirTMP1 = @ScriptDir & "\XCICO"
        If Not FileExists($dirTMP1) Then DirCreate($dirTMP1)
        Local $MyIco
        $addfld = ObjCreate("ADODB.Connection")
        $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
        $RS = ObjCreate("ADODB.Recordset")
        $RS.ActiveConnection = $addfld
        ;读取数据库

        ;不知道模仿的对不?希望把您的代码发来学习学习,我的邮箱zhxj5276@163.com

        $RS.open("select Data from mydb where Name='捕获2.PNG' ")
        Local $tFileWrite1 = $RS.Fields(0).value
        FileWrite("XCICO\Aa2.PNG", $RS.Fields(0).value)
        $RS.close
        ShellExecute(@ScriptDir & "\XCICO\Aa2.PNG")
        $addfld.close
EndFunc   ;==>_duXCICO




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2019-7-28 12:35:57 | 显示全部楼层
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $mdb_key & ";Jet Oledb:Database Password=" & $mdb_data_key)
$RS = ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
$hHandle1 = FileOpen("捕获4.PNG", 16)
$fRead1 = Binary(FileRead($hHandle1))
$addfld.Execute("insert into DB (Name,Data) values ('捕获4.PNG'," & $fRead1 & ")");插入

$RS.close
$addfld.close

;-------------------------------------------------------------------------------------
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $mdb_key & ";Jet Oledb:Database Password=" & $mdb_data_key)
$RS = ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
$RS.open("select Data from DB where Name='捕获4.PNG' ");读取
Local $tFileWrite1 = $RS.Fields(0).value
FileWrite("XCICO\AB1.PNG", $RS.Fields(0).value)


$RS.close
$addfld.close



 楼主| 发表于 2019-7-28 18:02:36 | 显示全部楼层
非常感谢chzj589,回复解决问题才是真大神。写进去了,但是读不出来,我是新手不熟悉。希望能写出比如:读取“图片”字段的第2张图片的语句。在此谢过!!!
发表于 2019-7-28 18:10:58 | 显示全部楼层
zmdzhxj 发表于 2019-7-28 18:02
非常感谢chzj589,回复解决问题才是真大神。写进去了,但是读不出来,我是新手不熟悉。希望能写出比如:读 ...

估计你是没有写入,把你写入的数据库发上来我调试看看
 楼主| 发表于 2019-7-28 18:17:15 | 显示全部楼层
chzj589 发表于 2019-7-28 12:35
[au3]$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data So ...

十分谢谢chzj589的用心回复。能写进去,无奈我是新手,怎样读出试了不行。读取:表名"mydb"、 “图片”字段的第3张图片的语句,具体怎么写?谢谢!
发表于 2019-7-28 19:18:39 | 显示全部楼层
zmdzhxj 发表于 2019-7-28 18:17
十分谢谢chzj589的用心回复。能写进去,无奈我是新手,怎样读出试了不行。读取:表名"mydb"、 “图片”字 ...

2楼己说了
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $mdb_key & ";Jet Oledb:Database Password=" & $mdb_data_key)
$RS = ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
$RS.open("select Data from DB where Name='捕获4.PNG' ");读取
Local $tFileWrite1 = $RS.Fields(0).value
FileWrite("XCICO\AB1.PNG", $RS.Fields(0).value)
$RS.close
$addfld.close

$RS.open("select Data from 表名 where 字段名='图片文件名' ");读取

我己说了,你应该是没有写入数据库,所以读不出来。
要把自己的代码与数据库帖上来,要不就把我的代码给你,这样就不是在学习了,你说是吧?
发表于 2019-7-28 21:48:26 | 显示全部楼层
zmdzhxj 发表于 2019-7-28 20:07
不好意思,刚才出去了。感谢您的用心。第一次发帖还没摸到门道,直接回复您不能发附件,只有重新发了。现把 ...

出现错误原因:
1:建立的数据库的格式不对
2:没有把图片写入二进制
3:对ACCESS数据还没弄懂





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2019-7-28 21:56:13 | 显示全部楼层
chzj589 发表于 2019-7-28 21:48
出现错误原因:
1:建立的数据库的格式不对
2:没有把图片写入二进制

多谢,我是新手,才学习几天,真是不懂。麻烦把您的代码发到我邮箱。学习学习。再次感谢!
发表于 2019-8-3 16:46:36 | 显示全部楼层
我问个问题啊,这个字段里的长二进制数据,和将文件用OLE对象数据类型写数据库是一回事么?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-18 23:44 , Processed in 0.074017 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表