VB中用数据库存取图片的实现.doc
文本预览下载声明
VB中用数据库存取图片的实现
摘 要:VB 数据库中图像数据的存取对初学者来说是个难点,本文利用ADO 对象的AppendChunk 和GetChunk 方法来实现数据库存取图片,以供初学者参考。
关键字:VB;数据库;图片;存取;AppendChunk ;GetChunk
图像数据的存取对初学者来说是个难点,而当前的VB 教学因课时较短,所选教材或讲授过程对数据库一章要么忽略要么只是简单地介绍,很少涉及到图像的存取问题,而专业数据库开发书籍中的大量源代码又让初学者看得头疼,所以本文利用ADO 对象的AppendChunk 和GetChunk 方法来实现数据库存取图片,以供参考。
一、界面设计
在Form1中添加控件1个PictureBox(名称为picture1),1个TextBox(名称为txtfilepath),1个CommonDialog(名称为cmdlFilePath),7个CommandButton(名称分别为cmdBrowse、cmdSave、cmdExit、cmdFirst、cmdPrev、cmdNext和cmdLast),整体界面如下图所示:
主界面示意图
二、编程思路
利用Access创建一个数据库命名为image,在image数据库中创建一个数据表imagestore,在imagestore数据表中创建srno和picimage两个字段,其中srno字段类型为自动编号,picimage字段类型为OLE对象。在程序中点击cmdBrowse按钮打开CommonDialog,选择要插入的图片,选中后该图片的路径在txtfilepath中显示,点击保存按钮后图片被保存进image.mdb,同时在picture1中显示图片。保存多个图片后可利用cmdFirst、cmdPrev、cmdNext和cmdLast按钮进行浏览。
三、代码实现
声明常量和变量:
Dim cnnImage As New ADODB.Connection
Dim rsImage As New ADODB.Recordset
Dim strSql As String
Dim Chunk() As Byte
Dim lngLengh As Long
Dim intChunks As Integer
Dim intFragment As Integer
Const ChunkSize = 1000
Const lngDataFile = 1
窗体的FormLoad事件代码:
Private Sub Form_Load()
rsImage.LockType = adLockOptimistic
rsImage.CursorType = adOpenKeyset
cnnImage.Provider = Microsoft.Jet.OLEDB.4.0
strSql = App.Path \Image.mdb
cnnImage.Open strSql
strSql = Select * From ImageStore
rsImage.Open strSql, cnnImage
If (rsImage.BOF = True) And (rsImage.EOF = True) Then Exit Sub
Call cmdFirst_Click
End Sub
主要利用ADO对象建立程序与数据库的链接。
定义公共函数ShowPic
Public Sub ShowPic()
On Error Resume Next
Open pictemp For Binary Access Write As lngDataFile
lngLengh = rsImage!picImage.ActualSize
intChunks = lngLengh \ ChunkSize
intFragment = lngLengh Mod ChunkSize
ReDim Chunk(intFragment)
Chunk() = rsImage!picImage.GetChunk(intFragment)
Put lngDataFile, , Chunk()
For I = 1 To intChunks
ReDim Buffer(ChunkSize)
Chunk() = rsImage!picImage.GetChunk(ChunkSize)
’’’’’’’’’’’’’’’’’’’
显示全部