麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

VB實現圖像在數據庫的存儲與顯示

2019-11-18 17:41:26
字體:
來源:轉載
供稿:網友
摘要本文以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->

  兩種方法在使用方面各有所長,讀者可以針對自己的情況做出合理的選擇。->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲网站免费看 | 97中文字幕第一一一页 | 7777视频| 99亚洲伊人久久精品影院红桃 | 免费播放av | 国产一级毛片高清视频完整版 | h视频在线播放 | 99re热视频这里只精品 | 国产日韩在线观看视频 | 91久久夜色精品国产网站 | 亚洲人成在线播放网站 | 欧美视频一二三区 | 99日韩精品视频 | 日日摸夜夜添夜夜添牛牛 | 久久精品一级片 | 粉嫩粉嫩一区二区三区在线播放 | 成人福利视频导航 | 成人国产免费观看 | 久久精品日产高清版的功能介绍 | 一区二区三区日韩 | 国产手机在线视频 | 91美女视频在线 | 亚洲一区在线免费视频 | 久久久成人精品视频 | 黄色免费不卡视频 | 精品人伦一区二区三区蜜桃网站 | 亚洲性视频 | 日韩精品一区二区三区中文 | 91精品国产乱码久久久久 | arabxxxxvideos| 欧美a在线播放 | 毛片免费大全短视频 | 亚洲国产网址 | 伊久在线 | 久久我不卡 | 成人免费午夜视频 | 黄色一级毛片免费看 | 久久久久久久久久久久久久国产 | 亚洲成人第一区 | 亚洲精品动漫在线观看 | 欧美一级电影网站 |