VB实现图像在数据库的存储与显示

服装界的孩子

服装界的孩子

2016-02-19 14:22

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是VB实现图像在数据库的存储与显示,一起来学习了解下吧!
摘要本文以VB6与Access97作为开发工具,介绍了图像在数据库中的存储与显示技术。
  
  关键词数据库,数据控件,二进制,图像存储,图像显示,ADODB,Recordset
  
  数据库是数据管理的最新技术,是计算机科学的重要分支,是现代计算机信息系统和计算机应用的基础和核心。在科学技术高速发展的今天,在信息资源无处不在、无处不用,已成为各部门的重要财富的时候,对于从事程序开发的人员来说显得尤为重要。
  
  如今,对数据库的操作不仅仅满足于对字符和数字的单一操作,图像的存储与显示已显得尤为重要。下面作者将以VB6.0与Access97作为开发工具,分别介绍两种图像显示与存储的方法。
  
  利用数据控件和数据绑定控件
  
  利用这种方法,不写或写少量代码就可以构造简单的数据库应用程序,这种方法易于被初学者接受。在举例之前,先把数据绑定功能简要的说明一下,凡是具有DataSource属性的控件都是对数据敏感的,它们都能通过数据控件直接使用数据库里的数据。比如CheckBoxControl,ComboBoxComtrol,TextBoxComtrol,PictureBoxControl,ImageComtrol…因为这种方式涉及到的知识点比较少,也比较容易理解,不多作说明,现直接介绍编程步骤。
  
  1、从数据库中显示所需要的图片
  
  首先,添加一个Data数据控件,设置它的DatabaseName和RecordSource属性,
  
  ->strPath=App.Path
  IfRight(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("图片路径"),经过这两步的操作,就可以向数据库中添加图片了。
  
  这种方法最简单快捷,要写的代码量很少。但是这种方法在运行速度和灵活性方面有一定的限制,适合于初学者和一些简单的应用,要想灵活多变的显示图像,下面介绍的方法或许更适应您的要求。
  
  利用编写代码实现图片的存储与显示
  
  这种方法相对于方法一来说,代码量大,但是它操作灵活,能够满足多样形式下的操作,受到更多编程者的青睐。但是涉及到的知识面相对要多一些,不仅要掌握数据库的操作方法,还要二进制文件的读写作进一步的了解。关于数据库及二进制文件的基本操作很多参考书上都介绍的比较详细,需要时请查阅即可。在编程之前把本部分用到的变量说明如下:
  
  ->DimRSAsNewADODB.Recordset
  DimChunk()AsByte
  ConstChunkSizeAsInteger=2384
  DimDataFileAsInteger,Chunks,FragmentAsInteger
  DimMediaTempAsString
  DimlngOffset,lngTotalSizeAsLong
  DimiAsInteger->
  1、从数据库中显示所需要的图片
  
  第一步首先打开数据库,看有没有要查找的内容,有则继续执行,没有就退出
  
  ->RS.Source="select*fromInfoWhereName='"&sparaName&"';"
  RS.ActiveConnection="UID=;PWD=;DSN=TestDB;"
  RS.Open
  IfRS.EOFThenRS.cCose:ExitSub->
  第二步,读出长二进制数据即图片数据,把它转换成图片文件,操作过程如下
  
  ->MediaTemp=strPath&"picturetemp.tmp"
  DataFile=1
  OpenMediaTempForBinaryAccessWriteAsDataFile
  lngTotalSize=RS!MyPhoto.ActualSize
  Chunks=lngTotalSizeChunkSize
  Fragment=lngTotalSizeModChunkSize
  ReDimChunk(Fragment)
  Chunk()=RS!MyPhoto.GetChunk(Fragment)
  PutDataFile,,Chunk()
  Fori=1ToChunks
  ReDimChunk(ChunkSize)
  Chunk()=RS!MyPhoto.GetChunk(ChunkSize)
  PutDataFile,,Chunk()
  Nexti
  CloseDataFile->
  第三步,关闭数据库,这样就可以显示所要的图片了。
  
  ->RS.Close
  IfMediaTemp=""ThenExitSub
  Picture1.Picture=LoadPicture(MediaTemp)
  IfPicture1.Picture=0ThenExitSubj->
  2、向数据库中添加需要存储的图片
  
  向数据库添加存储的图片是显示图片逆过程,只要掌握了显示图片的操作,存储图片的操作也就迎刃而解了,下面将操作步骤介绍如下
  
  第一步首先打开数据库,过程如下:
  
  ->RS.Source="select*fromInfo;"
  RS.CursorType=adOpenKeyset
  RS.LockType=adLockOptimistic
  RS.ActiveConnection="UID=;PWD=;DSN=TestDB;"
  RS.Open->
  第二步,把要存储的图片转换成二进制长文件存入数据库中,操作过程如下
  
  ->RS.AddNew
  DataFile=1
  OpenstrPathPictureForBinaryAccessReadAsDataFile
  FileLen=LOF(DataFile)'文件中数据长度
  IfFileLen=0Then:CloseDataFile:RS.Close:ExitSub
  Chunks=FileLenChunkSize
  Fragment=FileLenModChunkSize
  ReDimChunk(Fragment)
  GetDataFile,,Chunk()
  RS!MyPhoto.AppendChunkChunk()
  ReDimChunk(ChunkSize)
  Fori=1ToChunks
   GetDataFile,,Chunk()
   RS!MyPhoto.AppendChunkChunk()
  Nexti
  CloseDataFile->
  第三步,更新纪录后,关闭数据库,就完成了数据图片到数据库的存储。
  
  ->RS.Update
  RS.Close
  SetRS=Nothing->
  两种方法在使用方面各有所长,读者可以针对自己的情况做出合理的选择。->

展开更多 50%)
分享

猜你喜欢

VB实现图像在数据库的存储与显示

编程语言 网络编程
VB实现图像在数据库的存储与显示

VC/VB 进行图像数据存储数据库心得

编程语言 网络编程
VC/VB 进行图像数据存储数据库心得

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

基于JSP实现数据库图片的存储和显示

Web开发
基于JSP实现数据库图片的存储和显示

在VB中用DAO实现数据库编程

vb
在VB中用DAO实现数据库编程

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

数据库的结构---VB数据库入门之(二)

编程语言 网络编程
数据库的结构---VB数据库入门之(二)

用VB实现关闭所有数据库对象

编程语言 网络编程
用VB实现关闭所有数据库对象

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

怎么恢复已删除的文件?

怎么恢复已删除的文件?

VB创建、修改、删除WIN2K用户

VB创建、修改、删除WIN2K用户
下拉加载更多内容 ↓