请大家一定帮帮我,我在csdn问了两个月了,都没人回我
将Access数据库中的OLE字段中的文件保存到文件
将文件保存到ACCESS数据库的OLE字段
问题点数:0、回复次数:8Top
1 楼adminlhb(『MSN』)回复于 2006-03-04 08:18:26 得分 0
ADO方式打开Access表
定义一个二进制数组,用来读取OLE字段值
用二进制方式,生成一个文件
反过来也一样。Top
2 楼vbman2003(家人)回复于 2006-03-04 08:59:31 得分 0
用ADO的Stream对象
可以在这里的搜索中输入Stream,有许多相关讨论Top
3 楼weiyulin(weidayed520)回复于 2006-03-07 23:04:39 得分 0
我不想用ADO 请教是否还有其它方法Top
4 楼unsigned(僵哥(发站内消息,请附上链接或问题说明,否则不予回复))回复于 2006-03-07 23:44:20 得分 0
那使用DAO或者OLE也可以.Top
5 楼weiyulin(weidayed520)回复于 2006-03-08 14:14:21 得分 0
DAO 我也不想用啊 请救啊Top
6 楼xixilanqiu(西西球霸)回复于 2006-03-08 15:12:32 得分 0
那你想用什么咯...
大家都这样写的..
同意ado方式Top
7 楼weiyulin(weidayed520)回复于 2006-03-08 23:46:51 得分 0
我想用一个变量保存 数据库字段中的二进制数据 然后再保存Top
8 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-09 00:00:55 得分 0
不想用Stream对象,那就用1楼的方法:
Dim cn As New ADODB.Connection,rs As New ADODB.Recordset
Private Sub Form_Load()
cn.CursorLocation = adUseClient
'这里给的是sql库的连接,具体的数据库连接请自己改过来,如果是Access库,只改数据库的连接即可
cn.Open "Provider=SQLOLEDB.1;Password=;Persist Security Info=False;User ID=sa;Initial Catalog=Test;Data Source=ljx"
End Sub
Private Sub cmdSaveFile_Click()
saveFile App.Path & "\temp.jpg"
End Sub
Private Sub cmdReadFile_Click()
readFile App.Path & "\temp1.jpg"
End Sub
'保存文件到数据库
Private Sub saveFile(Byval strFile As String)
Dim tmp() As Byte
Dim lngFile As Long
If rs.State=adStateOpen Then rs.Close
rs.Open "select * from test where 1<>1", cn, adOpenDynamic, adLockOptimistic
lngFile = FreeFile
Open strFile For Binary As #lngFile
ReDim tmp(LOF(lngFile))
Get #lngFile, , tmp
Close #lngFile
rs.AddNew
rs.Fields(0).Value = tmp
rs.Update
End Sub
'读取数据库的文件,保存到硬盘
Private Sub readFile(Byval strFile As String)
Dim tmp() As Byte
If rs.State=adStateOpen Then rs.Close
rs.Open "select * from test ", cn
ReDim tmp(rs.Fields(0).ActualSize) '返回2进制文件的字节长度
tmp = rs.Fields(0).Value
Open strFile For Binary As #1
Put #1, , tmp
Close #1
End Sub
Private Sub Form_Unload(Cancel As Integer)
If rs.State<>adStateClosed Then rs.Close
If cn.State<>adStateClosed Then cn.Close
Set rs = Nothing
Set cn=Nothing
End Sub
Top




