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