《 巧用CLIPBOARD建立图像数据库 》 VisualBasic中的数据控件(datacontrol)能连接众多的数据库源并且操纵简便,用来开发数据库管理应用程序,可以轻而易举地完成以前需要大量编写程序才能完成的任务。
使用其缺省数据库(Access格式)的二进制类型(Binary)字段来存放图形图像数据可建立包含图像的数据库,只是图像的格式受限制(缺省为.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等)去完成。
以上程序在VisualBasic3.0/4.0上通过。
(浙江 胡文俊)
使用其缺省数据库(Access格式)的二进制类型(Binary)字段来存放图形图像数据可建立包含图像的数据库,只是图像的格式受限制(缺省为.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等)去完成。
以上程序在VisualBasic3.0/4.0上通过。
(浙江 胡文俊)
解决方案 »
- CVS是什么?
- 100分的简单问题,(帮顶有分)
- 请问用Msbcode9.ocx控件怎样将条形码打印出来啊?
- 我晕了!!!如何用vb以二进制打开dbf文件!!!
- 高分请教,如何实现开机运行我的应用程序?
- 急!请中软资源的人看过来!(第一次提问,拜托各位大侠一定帮帮忙)
- 刚才的帖子无法给分,griefforyou, wzsswz,wangsitao请进来拿分
- Access数据库查询取值问题,为毛查询条件老被固定在一个值上面?
- vb+access select 中时间问题
- 寻求队友!!!!
- 我在http://jszb.jsagri.gov.cn/vb/default.htm中看到一个需要的程序,点旁边的“DOWNLOAD”,可是它“不理”我,我真的很需要这几个程序,怎么办?
- 帮忙!!!!快!!!!
I assume that you have created in Access a database db1.mdb with a table Table1 and a field Field1 of the OLE type. This is the Visual Basic code for storing an image:Dim a() As Byte, b As String, c, i, l, r Open "image.gif" For Binary As 1 l = LOF(1) b = Space(l) Get #1, , b Close 1 ReDim a(l) For i = 0 To l - 1 a(i) = CByte(Asc(Mid(b, i + 1, 1))) Next i Set c = CreateObject("ADODB.Connection") c.Open "driver={Microsoft Access Driver (*.mdb)};dbq=db1.mdb" Set r = CreateObject("ADODB.RecordSet") r.Open "SELECT * FROM Table1", c, 2, 2 If r.EOF Then r.addnew End If r(0) = a r.Update r.CloseThis is the ASP code for retrieving the image: <% Response.Buffer = true Response.Clear Response.Expires = 0 Response.ContentType = "image/gif" Set c = Server.CreateObject("ADODB.Connection") c.Open "driver={Microsoft Access Driver *.mdb)};dbq=\inetpub\wwwroot\db1.mdb" Set r = CreateObject("ADODB.RecordSet") r.Open "SELECT * FROM Table1", c, 2, 2 Response.BinaryWrite r(0) r.close Response.End %>The only assumption I have now is that the length of the image is not longer than the maximum variable size. Otherwise use the chunk-method.