Dim c As New ADODB.Connection
c.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\1.mdb;Persist Security Info=False"
c.Execute "create table a (b longbinary)"
End SubPrivate Sub Command4_Click()
    Set b = New ADODB.Recordset
    Set c = New ADODB.Stream
        
        
        c.Mode = adModeReadWrite    c.Type = adTypeBinary
    c.Open
    c.LoadFromFile "c:\1.bmp"
    
    b.Open "select * from a", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\1.mdb;Persist Security Info=False", adOpenDynamic, adLockOptimistic
    b.AddNew
    
    b.Fields.Item(0).Value = c.Read()
    
    
    b.Update
    
    b.Close
    Set b = New ADODB.Recordset
    b.Open "select * from a", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\1.mdb;Persist Security Info=False", adOpenKeyset, adLockOptimistic
    MsgBox b.RecordCount
    
    b.MoveLast
    
    c.Write (b.Fields.Item(0).Value)
    
    c.SaveToFile "c:\aa.bmp", adSaveCreateOverWrite
    
    Picture1.Picture = LoadPicture("c:\aa.bmp")

解决方案 »

  1.   

    使用其缺省数据库(Access格式)的二进制类型(Binary)字段来存放图形图像数据可建立包含图像的数据库,只是图像的格式受限制(缺省为.bmp类型)。
      那么,能否在VB中建立一个不受图像格式限制的图像数据库呢?下面通过实例介绍实现方法:1.定义数据库结构用数据管理器(datamanager)建立一个包含表ImgTable的数据库Imge1.mdb。
      其中表ImgTable的结构定义为:
      字段名 类型
      No   Integer
      ImgData Binary
      这里,同时预先建立几个ImgData内容为空的记录,供测试用。
      2.添加控件及代码
      在Form1上画出标签(Label1)、按钮(Command1)、图片框(Picture1)、数据控件(Data1)各一个,属性及代码如下:
      Data1DatabaseName=″C:\VB40\IMGE1MDB″
      Data1RecordSource=ImgTable
      Label1DataSource=ImgTable
      Label1DataField=No
      Picture1DataSource=ImgTable
      Picture1DataField=ImgData
      SubCommand1_Click()
      ′从Clipboard截取图像数据到图片框控件中
      Picture1Picture=ClipboardGetData()
      End Sub
      3.往Clipboard送图像可采用各种支持Clipboard的图像编辑器,如在Photoshop上处理好图像,然后将其“拷贝”或“剪切”至Clipboard。
      4.从Clipboard截取图像到数据库
      切换至VB,运行Form1。用鼠标点击按钮Command1,将图像从Clipboard“粘贴”到图片框中。然后,利用数据控件将当前记录往后(或往前)滑动,图片框中的图像便自动保存至数据库中。
      5.重复3、4步,利用Clipboard可建立一个不受图像格式限制的图像数据库,而且,比起字段中放置图像文件名再依此调用图像文件的方法更易管理。
      另外,对于一些数据库的增加、查询、修改等操纵功能,可配合使用数据库对象(如Database、TableDef、Field、Dynaset、Snapshot等)去完成。
      

  2.   

    sgzw提的是sql server,而楼上的几位说的都是access的mdb,相同吗???
      

  3.   

    可以在程序中用一函数把.bmp图像变换成二进制数据段,然后建立一个到sql server的连接,用储存机制把它写入到服务器内。