如何将图片存入数据库?
已用Access建立好数据库,存放图片的字段采用"OLE对象",现在的问题是如何在程序中将图片存入该字段。 问题点数:50、回复次数:7Top
1 楼TopHead(我是一个兵)回复于 2000-08-04 10:01:00 得分 25
'将图片存入数据库
'首先将文件读入一字节数组
' Dim bit() As Byte
' Open "C:\WINDOWS\安装程序.bmp" For Binary As #1
' ReDim bit(LOF(1)) As Byte
' Get 1, 1, bit
' Close 1
'然后将字节数组的内容写入数据库即可
Dim cnn As New ADODB.Connection, rst As New ADODB.Recordset
cnn.Open "Provider=SQLOLEDB.1;Password=test;Persist Security Info=True;User ID=test;Initial Catalog=pubs;Data Source=DB1\SQL1"
rst.Open "T1", cnn, adOpenKeyset, adLockOptimistic
' rst.AddNew
' rst("F1").AppendChunk bit
' rst.Update
'
'将数据库中的图片读出
'首先将数据库中的内容读到一字节数组
Dim bit1() As Byte
bit1 = rst("F1").GetChunk(rst("F1").ActualSize)
'然后将字节数组的内容拼装成文件即可
Open "c:\1.bmp" For Binary As #1
Put 1, 1, bit1
Close 1
' Me.Picture = LoadPicture("c:\1.bmp")
Top
2 楼songs(小毛)回复于 2000-08-04 22:13:00 得分 0
一本参考书上有,我明天给你答案!(好象比上面要简单)Top
3 楼wulang()回复于 2000-08-04 23:52:00 得分 20
将图片直接存入Access数据库适用于图片较少的情况,因为Access数据库文件不能超过100M,当图片较多时,宜采用只将图片路径存入数据库的方法。Top
4 楼vicsue(victor)回复于 2000-08-05 01:29:00 得分 0
TopHead的方法所保存的图片为长二进制数据,非BMP图象,不能用OLE对象读出,用报表(ActiveReports)打印输出;
wulang的方法也不能用报表输出;Top
5 楼lczddd(李找乐)回复于 2000-08-05 10:47:00 得分 5
其实有一个好方法:在数据库中存取图片的路径。存取图片不也是在硬盘上么?。。。
取出路径再根据路径找图片。。。Top
6 楼vicsue(victor)回复于 2000-08-05 23:05:00 得分 0
To lczddd:
以前我也是保存图片的路径,在窗口中显示没有问题,但现在需要打印,用ActiveReports或Crystal Report打印,打印时如何根据路径找图片......Top
7 楼wxin(网之心)回复于 2001-03-24 23:08:00 得分 0
wulang() :
您好,能不能将源码给我,?13yao@china.comTop




