中文字幕天天躁日日躁狠狠躁,最近中文字幕大全免费版在线,最近2019免费中文字幕视频三,亚洲精品无码你懂的,亚洲国产精品成人精品小说

  • 相關(guān)軟件
    >VB實(shí)現(xiàn)圖像在數(shù)據(jù)庫的存儲(chǔ)與顯示 創(chuàng)建者:webmaster 更新時(shí)間:2005-07-02 01:43

    數(shù)據(jù)庫是數(shù)據(jù)管理的最新技術(shù),是計(jì)算機(jī)科學(xué)的重要分支,是現(xiàn)代計(jì)算機(jī)信息系統(tǒng)和計(jì)算機(jī)應(yīng)用的基礎(chǔ)和核心。在科學(xué)技術(shù)高速發(fā)展的今天,在信息資源無處不在、無處不用,已成為各部門的重要財(cái)富的時(shí)候,對(duì)于從事程序開發(fā)的人員來說顯得尤為重要。

      如今,對(duì)數(shù)據(jù)庫的操作不僅僅滿足于對(duì)字符和數(shù)字的單一操作,圖像的存儲(chǔ)與顯示已顯得尤為重要。下面作者將以VB6.0與Access97作為開發(fā)工具,分別介紹兩種圖像顯示與存儲(chǔ)的方法。

      利用數(shù)據(jù)控件和數(shù)據(jù)綁定控件

      利用這種方法,不寫或?qū)懮倭看a就可以構(gòu)造簡(jiǎn)單的數(shù)據(jù)庫應(yīng)用程序,這種方法易于被初學(xué)者接受。在舉例之前,先把數(shù)據(jù)綁定功能簡(jiǎn)要的說明一下,凡是具有DataSource屬性的控件都是對(duì)數(shù)據(jù)敏感的,它們都能通過數(shù)據(jù)控件直接使用數(shù)據(jù)庫里的數(shù)據(jù)。比如CheckBox Control , ComboBox Comtrol , TextBox Comtrol , PictureBox Control ,Image Comtrol … 因?yàn)檫@種方式涉及到的知識(shí)點(diǎn)比較少,也比較容易理解,不多作說明,現(xiàn)直接介紹編程步驟。

      1、從數(shù)據(jù)庫中顯示所需要的圖片

      首先,添加一個(gè)Data數(shù)據(jù)控件,設(shè)置它的DatabaseName和RecordSource屬性,





    strPath = App.Path
    If Right(strPath, 1) <> "\" Then
     strPath = strPath & "\"
    MyData.DatabaseName = strPath & "ExampleDB.mdb" '數(shù)據(jù)庫存地址
    MyData.RecordSource = "Info" '表名

      第二步,添加Image控件用來顯示圖片,設(shè)置它的DataSource和DataField屬性。例如本例中: Image1.DataSource="MyData"和Image1.DataField=" MyPhoto" 。然后設(shè)置其它具有數(shù)據(jù)綁定功能的控件用來顯示所要的其它內(nèi)容,經(jīng)過這兩步的操作,運(yùn)行程序就可以顯示你要的數(shù)據(jù)了。

      2、向數(shù)據(jù)庫中添加需要存儲(chǔ)的圖片

      首先,利用數(shù)據(jù)控件所具有的AddNew屬性,添加一個(gè)按鈕,雙擊后添加如下代碼MyData.Recordset.AddNew

      第二步,為Image控件圖片指定圖片路徑Image1.Picture = LoadPicture("圖片路徑"),經(jīng)過這兩步的操作,就可以向數(shù)據(jù)庫中添加圖片了。

      這種方法最簡(jiǎn)單快捷,要寫的代碼量很少。但是這種方法在運(yùn)行速度和靈活性方面有一定的限制,適合于初學(xué)者和一些簡(jiǎn)單的應(yīng)用,要想靈活多變的顯示圖像,下面介紹的方法或許更適應(yīng)您的要求。

      利用編寫代碼實(shí)現(xiàn)圖片的存儲(chǔ)與顯示

      這種方法相對(duì)于方法一來說,代碼量大,但是它操作靈活,能夠滿足多樣形式下的操作,受到更多編程者的青睞。但是涉及到的知識(shí)面相對(duì)要多一些,不僅要掌握數(shù)據(jù)庫的操作方法,還要二進(jìn)制文件的讀寫作進(jìn)一步的了解。關(guān)于數(shù)據(jù)庫及二進(jìn)制文件的基本操作很多參考書上都介紹的比較詳細(xì),需要時(shí)請(qǐng)查閱即可。在編程之前把本部分用到的變量說明如下:





    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、從數(shù)據(jù)庫中顯示所需要的圖片

      第一步首先打開數(shù)據(jù)庫,看有沒有要查找的內(nèi)容,有則繼續(xù)執(zhí)行,沒有就退出





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

      第二步,讀出長二進(jìn)制數(shù)據(jù)即圖片數(shù)據(jù),把它轉(zhuǎn)換成圖片文件,操作過程如下





    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

      第三步,關(guān)閉數(shù)據(jù)庫,這樣就可以顯示所要的圖片了。





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

      2、向數(shù)據(jù)庫中添加需要存儲(chǔ)的圖片

      向數(shù)據(jù)庫添加存儲(chǔ)的圖片是顯示圖片逆過程,只要掌握了顯示圖片的操作,存儲(chǔ)圖片的操作也就迎刃而解了,下面將操作步驟介紹如下

      第一步首先打開數(shù)據(jù)庫,過程如下:





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

      第二步,把要存儲(chǔ)的圖片轉(zhuǎn)換成二進(jìn)制長文件存入數(shù)據(jù)庫中,操作過程如下





    RS.AddNew
    DataFile = 1
    Open strPathPicture For Binary Access Read As DataFile
    FileLen = LOF(DataFile) ' 文件中數(shù)據(jù)長度
    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

      第三步,更新紀(jì)錄后,關(guān)閉數(shù)據(jù)庫,就完成了數(shù)據(jù)圖片到數(shù)據(jù)庫的存儲(chǔ)。





    RS.Update
    RS.Close
    Set RS = Nothing

      兩種方法在使用方面各有所長,讀者可以針對(duì)自己的情況做出合理的選擇。
    相關(guān)文章
    本頁查看次數(shù):