网站建设| 数据库类| 图形图象| 程序设计| 现代办公| 操作系统| 考试认证| 网络技术| 软件工程| 电脑相关| 文学作品
网站开发| 网页制作| 操作系统| 图象图形| 考试认证| 数据库类| 程序设计| 硬件技术| 现代办公| 网络技术| 笑话频道
 
您的位置: 电脑书库首页-> 电脑文摘-> 程序设计-> Basic/VB类-> VB实现图像在数据库的存储与显示

VB实现图像在数据库的存储与显示
作者:佚名 来源:InterNet 加入时间:2005-1-28
相关文章
  • VB图像处理之图像的亮度对比度调整
  • VB实现文件数据对SQL Server上传下载
  • 用VB6.0编写磁盘格式化程序
  • VB图像处理之图像的色彩纠正
  • VB图像处理之铅笔画算法和木雕算法
  • VB图像处理之几个常用滤镜的实现
  • VB图像处理之二次线性插值的应用
  • VB图像处理之像素的获取和输出
  • 利用VB6.0开发基于IIS的应用程序
  • VB6中用Oracle数据控件访问Oracle
  • 相关书籍:
  • VBScript语言参考
  • VBScript函数速查手册
  • VBScript5.5脚本语言参考
  • VB上机考试综合应用题选讲
  • vb另外两套教案
  • VB光盘资料库
  • VB、C快速进阶 2.0
  • Web 对象 VB参考
  • VB编程技巧集(中)--站长推荐
  • VB编程技巧集(上)--站长推荐
  •  数据库是数据管理的最新技术,是计算机科学的重要分支,是现代计算机信息系统和计算机应用的基础和核心。在科学技术高速发展的今天,在信息资源无处不在、无处不用,已成为各部门的重要财富的时候,对于从事程序开发的人员来说显得尤为重要。

      如今,对数据库的操作不仅仅满足于对字符和数字的单一操作,图像的存储与显示已显得尤为重要。下面作者将以VB6.0与Access97作为开发工具,分别介绍两种图像显示与存储的方法。

      利用数据控件和数据绑定控件

      利用这种方法,不写或写少量代码就可以构造简单的数据库应用程序,这种方法易于被初学者接受。在举例之前,先把数据绑定功能简要的说明一下,凡是具有DataSource属性的控件都是对数据敏感的,它们都能通过数据控件直接使用数据库里的数据。比如CheckBox Control , ComboBox Comtrol , TextBox Comtrol , PictureBox Control ,Image Comtrol … 因为这种方式涉及到的知识点比较少,也比较容易理解,不多作说明,现直接介绍编程步骤。

      1、从数据库中显示所需要的图片

      首先,添加一个Data数据控件,设置它的DatabaseName和RecordSource属性,

    strPath = App.Path
    If Right(strPath, 1) <> "\" Then
     strPath = strPath & "\"
    MyData.DatabaseName = strPath & "ExampleDB.mdb" '数据库存地址
    MyData.RecordSource = "Info" '表名

      第二步,添加Image控件用来显示图片,设置它的DataSource和DataField属性。例如本例中: Image1.DataSource="MyData"和Image1.DataField=" MyPhoto" 。然后设置其它具有数据绑定功能的控件用来显示所要的其它内容,经过这两步的操作,运行程序就可以显示你要的数据了。

      2、向数据库中添加需要存储的图片

      首先,利用数据控件所具有的AddNew属性,添加一个按钮,双击后添加如下代码MyData.Recordset.AddNew

      第二步,为Image控件图片指定图片路径Image1.Picture = LoadPicture("图片路径"),经过这两步的操作,就可以向数据库中添加图片了。

      这种方法最简单快捷,要写的代码量很少。但是这种方法在运行速度和灵活性方面有一定的限制,适合于初学者和一些简单的应用,要想灵活多变的显示图像,下面介绍的方法或许更适应您的要求。

      利用编写代码实现图片的存储与显示

      这种方法相对于方法一来说,代码量大,但是它操作灵活,能够满足多样形式下的操作,受到更多编程者的青睐。但是涉及到的知识面相对要多一些,不仅要掌握数据库的操作方法,还要二进制文件的读写作进一步的了解。关于数据库及二进制文件的基本操作很多参考书上都介绍的比较详细,需要时请查阅即可。在编程之前把本部分用到的变量说明如下:

    Dim RS As New ADODB.Recordset
    Dim Chunk() As Byte
    Const ChunkSize As Integer = 2384
    Dim DataFile As Integer, Chunks, Fragment As Integer
    Dim MediaTemp As String
    Dim lngOffset, lngTotalSize As Long
    Dim i As Integer

      1、从数据库中显示所需要的图片

      第一步首先打开数据库,看有没有要查找的内容,有则继续执行,没有就退出

    RS.Source = "select * from Info Where Name='" & sparaName &"';"
    RS.ActiveConnection = "UID=;PWD=;DSN=TestDB;"
    RS.Open
    If RS.EOF Then RS.cCose : Exit Sub

      第二步,读出长二进制数据即图片数据,把它转换成图片文件,操作过程如下

    MediaTemp = strPath & "picturetemp.tmp"
    DataFile = 1
    Open MediaTemp For Binary Access Write As DataFile
    lngTotalSize = RS!MyPhoto.ActualSize
    Chunks = lngTotalSize \ ChunkSize
    Fragment = lngTotalSize Mod ChunkSize
    ReDim Chunk(Fragment)
    Chunk() = RS!MyPhoto.GetChunk(Fragment)
    Put DataFile, , Chunk()
    For i = 1 To Chunks
    ReDim Chunk(ChunkSize)
    Chunk() = RS!MyPhoto.GetChunk(ChunkSize)
    Put DataFile, , Chunk()
    Next i
    Close DataFile

      第三步,关闭数据库,这样就可以显示所要的图片了。

    RS.Close
    If MediaTemp = "" Then Exit Sub
    Picture1.Picture = LoadPicture(MediaTemp)
    If Picture1.Picture = 0 Then Exit Subj

      2、向数据库中添加需要存储的图片

      向数据库添加存储的图片是显示图片逆过程,只要掌握了显示图片的操作,存储图片的操作也就迎刃而解了,下面将操作步骤介绍如下

      第一步首先打开数据库,过程如下:

    RS.Source = "select * from Info ;"
    RS.CursorType = adOpenKeyset
    RS.LockType = adLockOptimistic
    RS.ActiveConnection = "UID=;PWD=;DSN=TestDB;"
    RS.Open

      第二步,把要存储的图片转换成二进制长文件存入数据库中,操作过程如下

    RS.AddNew
    DataFile = 1
    Open strPathPicture For Binary Access Read As DataFile
    FileLen = LOF(DataFile) ' 文件中数据长度
    If FileLen = 0 Then : Close DataFile : RS.Close : Exit Sub
    Chunks = FileLen \ ChunkSize
    Fragment = FileLen Mod ChunkSize
    ReDim Chunk(Fragment)
    Get DataFile, , Chunk()
    RS!MyPhoto.AppendChunk Chunk()
    ReDim Chunk(ChunkSize)
    For i = 1 To Chunks
     Get DataFile, , Chunk()
     RS!MyPhoto.AppendChunk Chunk()
    Next i
    Close DataFile

      第三步,更新纪录后,关闭数据库,就完成了数据图片到数据库的存储。

    RS.Update
    RS.Close
    Set RS = Nothing

      两种方法在使用方面各有所长,读者可以针对自己的情况做出合理的选择。

    [文章录入员:nancy]

    相关文章
  • VB图像处理之图像的亮度对比度调整
  • VB实现文件数据对SQL Server上传下载
  • 用VB6.0编写磁盘格式化程序
  • VB图像处理之图像的色彩纠正
  • VB图像处理之铅笔画算法和木雕算法
  • VB图像处理之几个常用滤镜的实现
  • VB图像处理之二次线性插值的应用
  • VB图像处理之像素的获取和输出
  • 利用VB6.0开发基于IIS的应用程序
  • VB6中用Oracle数据控件访问Oracle
  • 相关书籍:
  • VBScript语言参考
  • VBScript函数速查手册
  • VBScript5.5脚本语言参考
  • VB上机考试综合应用题选讲
  • vb另外两套教案
  • VB光盘资料库
  • VB、C快速进阶 2.0
  • Web 对象 VB参考
  • VB编程技巧集(中)--站长推荐
  • VB编程技巧集(上)--站长推荐
  • 本站推荐内容

    近期主机类热搜关键词:
    美国服务器 美国服务器租用 海外服务器租用 国外服务器租用

    Basic/VB类
    C/C++/VC
    C++Builder
    Basic/VB类
    Delphi/Pascal
    Java编程
    FORTRAN
    其它
    电脑教程阅读排行
    ·VB学习一点通
    ·VB设计动画时钟
    ·在Visual Basic 6....
    · 用VB6.0编写手机短信发送 ...
    ·VB实现文件数据对SQL Ser...
    ·利用Visual Basic操作...
    ·VB实现图像在数据库的存储与显示
    ·用Visual Basic6.0...
    ·Visual Basic代码优化...
    · VB中实现“无标题”窗体的移动...