'将图片存入数据库
    '首先将文件读入一字节数组
'    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")

解决方案 »

  1.   

    将图片直接存入Access数据库适用于图片较少的情况,因为Access数据库文件不能超过100M,当图片较多时,宜采用只将图片路径存入数据库的方法。
      

  2.   

    TopHead的方法所保存的图片为长二进制数据,非BMP图象,不能用OLE对象读出,用报表(ActiveReports)打印输出;
    wulang的方法也不能用报表输出;
      

  3.   

    To lczddd:
      以前我也是保存图片的路径,在窗口中显示没有问题,但现在需要打印,用ActiveReports或Crystal Report打印,打印时如何根据路径找图片......
      

  4.   

    wulang() :
    您好,能不能将源码给我,?[email protected]