• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

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

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 8次 | 進入軟件測試論壇討論

    領測軟件測試網   摘 要 本文以VB6與Access97作為開發工具,介紹了圖像在數據庫中的存儲與顯示技術。

      關鍵詞 數據庫,數據控件,二進制,圖像存儲,圖像顯示,ADODB,Recordset

      數據庫是數據管理的最新技術,是計算機科學的重要分支,是現代計算機信息系統和計算機應用的基礎和核心。在科學技術高速發展的今天,在信息資源無處不在、無處不用,已成為各部門的重要財富的時候,對于從事程序開發的人員來說顯得尤為重要。

      如今,對數據庫的操作不僅僅滿足于對字符和數字的單一操作,圖像的存儲與顯示已顯得尤為重要。下面作者將以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

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

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>