操作系统:XP,VB:6.0
picture控件显示的图片如何用DAO方式存入ACCESS数据库并回调显示?
(不用先将图片存成文件,再以二进制存入数据库的方式)
picture控件显示的图片如何用DAO方式存入ACCESS数据库并回调显示?
(不用先将图片存成文件,再以二进制存入数据库的方式)
解决方案 »
- 谁能用代码解释一下下面的For Each...In...语句?
- SdeConnect: Failed to connect. Connection error: #-102
- TreeView中如何删除使用CheckBox选中的各个节点呀?
- ADO连接数据库的几种方法
- 发布 换肤控件 请大伙给出建议
- 怎么求反余弦呀???帮帮忙。
- 对于水晶报表的疑惑!!答者有分!
- DATA REPORT显示的数据,我如果要传真,有没有好的方法?(UP都有分)
- 请问directX是干什么用的啊!能否给个例子?
- 请问vb中想利用对象传参该怎么解决?
- [SDK相关]Internet Transfer控件的功能用什么api函数来实现?
- 增求源码:关于有程序中用vsflexgrid和vsprint实现打印预鉴的例子。
'**************************读图片文件**************************************
Sub GetPicFromDB(cn As ADODB.Connection)
On Error Resume Next
Dim fld As Field
Dim strTemp As String
Dim stm As ADODB.Stream
Set stm = New ADODB.Stream
'strTemp = "c:\temp.bmp"
Set rs1 = New ADODB.Recordset
rs1.Open "select * from rs_http where htbh='" & frm_manage.Grid2.TextMatrix(frm_manage.Grid2.RowSel, 0) & "'", cn, , , adCmdText
While Not rs1.EOF
'*********将数据库中的文件读到硬盘上*************************
' strTemp = App.Path + "\temp\" + rs1!Name '`临时文件,用来保存读出的图片 With stm
.Type = adTypeBinary
.Open
.Write rs1("tp").value
strTemp = App.Path & "\temp1\" & rs1!Name
.SaveToFile strTemp, adSaveCreateOverWrite
.Close
End With
Set itemX = lvwPic.ListItems.add(, App.Path & "\temp1\" & rs1!Name, rs1!Name, 1, 1)
itemX.SubItems(1) = rs1!bz
rs1.MoveNext
Wend
Set stm = Nothing
rs1.Close
Set rs1 = Nothing
End Sub'******************将图片文件保存到数据库中*************************
Sub SavePicToDb(cn As ADODB.Connection, table1 As String, field1 As String, file1 As String, id1 As String)
On Error Resume Next
Dim stm As ADODB.Stream
Set stm = New ADODB.Stream
Set rs1 = New ADODB.Recordset
rs1.Open "select * from " & table1 & " where id = " & id1, cn, adOpenKeyset, adLockOptimistic
With stm
.Type = adTypeBinary
.Open
.LoadFromFile file1 'DLG.FileName
End With
With rs1
.Fields(field1) = stm.Read
.Update
End With
rs1.Close
Set rs1 = Nothing
End Sub
回二楼:
完整过程如下:打开任意一个文件,将文件本身以2进制方式存入ACCESS的OLE字段,同时,读取文件对应的图标,显示图标并将图标保存入数据库
再利用MSFLEXGRID列表显示导入数据库的文件的名称和对应的图标
三楼的方法是先把图标存成图片,再把图片二进制后存入数据库。而我正是要求不产生中间的临时图片文件,直接将图标存入数据库。