电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 冲浪宝典-> 网页浏览
vb实现图像在数据库的存储与显示_visualbasic教程
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
摘要本文以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=lngTotalSize\ChunkSize
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=FileLen\ChunkSize
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->

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


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·jQuery入门简介
·Myspace、Facebook九月访问人数减少一百多万人
·谷歌9月继续领跑美搜索市场 微软增速最快
·商业搜索将引领网络规模经济时代将的到来
·范少晖:搜索引擎如何判断文章是否原创?
·新手做站内容选择与优化
·马化腾:再做一次好学生
·个人网站的怪圈
·看51.com的盈利模式如何做到登封造极
·SEO入门:交换链接中如何分别假PR值

最新文章
·中文虚拟世界三位创始人的对话
·对于Blogger的杂想
·电子商务思考系列之六 怎样让浏览者掏钱
·做网站是兼职还是专职?适合那些人?
·站长天下,玩遍天下“站长”
·整合SEO,你准备好了吗?
·威客PK大赛 增值还是贬值
·做SEO既要接受挑战又要面对现实
·电子商务中我们思考的盲点
·网站运营 六大核心


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号