主题:在数据库中存取图片哪种方法好??
秀客
[专家分:50] 发布于 2004-03-24 21:24:00
如何方便地存取图片,最好不用临时文件。请注源程序
回复列表 (共10个回复)
沙发
qingdaofeng [专家分:3160] 发布于 2004-03-25 03:10:00
建议你不要把图片放入数据库,而是放到一个独立的图片文件夹中,这样效率高些,数据库负载也小。
访问和存取图片都可以采取读取二进制文件的方式进行。(如何读取文件应该没有问题吧?不明白上网查查去,到处都有)
板凳
偷猫 [专家分:15960] 发布于 2004-03-25 08:05:00
保存一堆以数字命名的图片就行了,
如1.gif,2.gif,3.gif……
1.jpg,2.jpg,3.jpg……
用loadpicture()调。比数据库简单。
3 楼
偷猫 [专家分:15960] 发布于 2004-03-25 08:06:00
要是不想让用户直接看到图片文件,可以做在“RES”文件中,
用loadRESpicture()函数调用。
也比数据库简单。
4 楼
llm9178 [专家分:13400] 发布于 2004-03-25 10:16:00
最好是使用ADO的Stream对象(ADO2.5以上)
5 楼
秀客 [专家分:50] 发布于 2004-03-25 21:28:00
楼上能不能再指点明白一些?给个范例吧
6 楼
llm9178 [专家分:13400] 发布于 2004-03-27 19:42:00
'** 数据库使用 ADODB.Stream 保存/读取JPG文档的示例代码
'** 引用 Microsoft ActiveX Data Objects 2.5 Library 及以上版本
Option Explicit
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim StmJPG As ADODB.Stream
'窗体载入时连接数据库
Private Sub Form_Load()
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Persist Security Info=False;Jet OLEDB:Database Password=123"
End Sub
'将JPG文档保存到数据库
Private Sub cmdSave_Click()
Set rs = New ADODB.Recordset
rs.Open "select * from TableName", cn, adOpenKeyset, adLockOptimistic
Set StmJPG = New ADODB.Stream
With StmJPG
.Type = adTypeBinary '二进制类型
.Open
.LoadFromFile "F:\My Documents\test.JPG" '将JPG文档载入StmJPG,转为流文件
End With
rs.AddNew
rs.Fields("Photo").Value = StmJPG.Read
rs.Update
StmJPG.Close
rs.Close
End Sub
'读取数据库中的JPG文档
Private Sub cmdRead_Click()
Dim Sql As String
Sql = "select * from TableName where id=3"
Set rs = New ADODB.Recordset
rs.Open Sql, cn, adOpenKeyset, adLockOptimistic
Set StmJPG = New ADODB.Stream
With StmJPG
.Mode = adModeReadWrite
.Type = adTypeBinary
.Open
.Write rs!Photo
.SaveToFile App.Path & "\TempTest.JPG"
.Close
End With
Image1.Picture=LoadPicture(App.Path & "\TempTest.JPG")
Kill App.Path & "\TempTest.JPG")
rs.Close
End Sub
7 楼
秀客 [专家分:50] 发布于 2004-03-27 21:35:00
非常感谢!
8 楼
free800 [专家分:0] 发布于 2004-03-28 13:19:00
那个。res文件有什么介绍啊?
用处和其他的一些东西
谢谢。。。。。。。
而loadrespicture和loadpicture有什么区别啊???
9 楼
blue123 [专家分:120] 发布于 2004-04-09 07:06:00
res文件主要是存放窗体上或代码里经常用到的图片、文字等。类似于全局变量的值,只要改变了res文件,工程中任何调用的地方都随之改变。方便维护。
10 楼
louja [专家分:280] 发布于 2006-04-10 13:50:00
'读取数据库中的JPG文档
Private Sub cmdRead_Click()
Dim Sql As String
Sql = "select * from TableName where id=3"
Set rs = New ADODB.Recordset
rs.Open Sql, cn, adOpenKeyset, adLockOptimistic
Set StmJPG = New ADODB.Stream
With StmJPG
.Mode = adModeReadWrite
.Type = adTypeBinary
.Open
.Write rs!Photo
.SaveToFile App.Path & "\TempTest.JPG"
.Close
End With
Image1.Picture=LoadPicture(App.Path & "\TempTest.JPG")
Kill App.Path & "\TempTest.JPG")
rs.Close
End Sub
斑竹\\能解释一下你写的代码吗?谢谢了
特别是.Write rs!Photo
.SaveToFile App.Path & "\TempTest.JPG"
这两句啊,[em10]
我来回复