• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      VB存?。拢蹋希聰?shù)據(jù)的方法及應用

      2009-03-10 09:50武金萍崔冬華
      中國教育信息化·高教職教 2009年1期

      武金萍 崔冬華

      摘 要:本文介紹了在VB中利用ADO的AppendChunk方法在數(shù)據(jù)庫中存取BLOB數(shù)據(jù)的具體方法,并給出實現(xiàn)圖像存取顯示的完整工作過程,為多媒體信息管理系統(tǒng)的開發(fā)提供了有效的解決方案。

      關鍵詞:VB 數(shù)據(jù)庫 ADO BLOB圖像存取

      中圖分類號:TP311.134.3 文獻標識碼:B 文章編號:1673-8454(2009)01-0082-05

      一、引言

      在使用數(shù)據(jù)庫的過程中,除了保存大量的文字信息以外,我們經(jīng)常要存儲一些較大的二進制數(shù)據(jù)對象,像圖形、長文本、多媒體(視頻、音頻文件)等,例如:一個學生管理系統(tǒng)就需要對每個人的照片進行保存,以便對每個人的信息進行處理。這些數(shù)據(jù)被稱之為二進制大對象BLOB(Binary Large Object),亦稱為大對象類型數(shù)據(jù)。[1]二進制大對象、OLE對象可以通過BLOB類型存入數(shù)據(jù)庫,如果文本對象過大,超出了文本類型的規(guī)定長度,則必須用BLOB字段進行存儲。[2] 將BLOB數(shù)據(jù)存儲在數(shù)據(jù)庫的相應字段中,其存取的方式與普通數(shù)據(jù)有所區(qū)別。我們在經(jīng)常使用的編程環(huán)境中并不能直接支持BLOB字段,因此需要調用相應的函數(shù)完成BLOB數(shù)據(jù)的使用。本文介紹在VB中,如何通過ADO的AppendChunk方法,將BLOB數(shù)據(jù)的寫入操作。

      二、二進制大對象的存取方法

      可以使用ADO中的AppendChunk方法來存取BLOB數(shù)據(jù)。AppendChunk包含在Field對象中,語法如下:[3]

      ADO對象.Recordset.Fields(字段). AppendChunkData

      其中,參數(shù)Data包含追加到數(shù)據(jù)庫中的BLOB數(shù)據(jù)。

      通常的處理步驟如下:

      (1)用二進制方式打開BLOB數(shù)據(jù)文件;

      (2)定義一個字節(jié)類型的數(shù)組,數(shù)組大小為文件長度;

      (3)將文件保存到數(shù)組;

      (4)使用ADO對象的AppendChunk方法寫入數(shù)據(jù)庫。

      三、二進制大對象處理方法的具體實現(xiàn)

      在得到圖片數(shù)據(jù)并將其保存到數(shù)據(jù)庫中時,要使用ADO的AppendChunk方法。[4]程序界面如圖1所示,單擊“圖片輸入”按鈕,打開通用對話框,選擇指定的圖形文件到數(shù)據(jù)庫;在瀏覽記錄時可以顯示圖片;單擊“圖片刪除”按鈕,刪除已加載的圖片。

      首先,在Access中創(chuàng)建一個數(shù)據(jù)庫文件Student.mdb,在該庫中建立一個表(表名為jbqk),字段如表1所示。

      接著,在VB中創(chuàng)建一個工程,在form1窗體上添加ADO控件、命令按鈕、圖像控件、通用對話框、文本框和標簽控件。將Adodc1控件連接到數(shù)據(jù)庫Student.mdb,指定記錄源為“jbqk”表。

      所用的控件及屬性設置見表2。

      具體的窗口代碼如下:

      (1)為數(shù)據(jù)庫添加圖片

      Private Sub Command1_Click()

      Dim a()As Byte ′定義一個動態(tài)數(shù)組為字節(jié)類型

      CommonDialog1.ShowOpen ′顯示打開對話框

      Open CommonDialog1.FileName For Binary As #1′以二進制讀方式打開源文件

      fl = LOF(1)′獲得文件長度

      ReDim a(fl)′設置數(shù)組大小為文件長度

      Get #1, , a ′讀文件到數(shù)組中

      Adodc1.Recordset.Fields("照片").AppendChunka

      Close #1

      Image1.Picture = LoadPicture(CommonDialog1.FileName)′更新Image1內的圖形

      End Sub

      (2)數(shù)據(jù)庫中圖片數(shù)據(jù)的刪除

      Private Sub Command 2_Click()'單擊命令按鈕2實現(xiàn)數(shù)據(jù)庫中圖片的刪除

      Adodc1.Recordset.Fields("照片").AppendChunk""

      Adodc1.Recordset.Update

      Image1.Picture = LoadPicture("")

      End Sub

      四、結束語

      Visual Basic 6.0為存取BLOB數(shù)據(jù)提供了靈活的接口。本文所闡述的方法不但適用于圖像文件,同樣適用于其它類型的文件。數(shù)據(jù)庫中BLOB數(shù)據(jù)的處理方法很多,不同的程序設計語言針對不同的DBMS,其處理方法都有差異。圖片的出現(xiàn)為Visual Basic程序增添了美麗的情調,使程序更富魅力、更具專業(yè)。

      參考文獻:

      [1]魏文勝.在VB中存取SQL Server 2000二進制數(shù)據(jù)的方法[J].電腦知識與技術(學術交流),2006(20):42-43.

      [2]龔沛曾,楊志強,陸慰民. Visual Basic程序設計教程(第三版)[M].北京:高等教育出版社,2007.

      [3]鄭阿奇.Visual Basic實用教程(第二版)[M].北京:電子工業(yè)出版社,2003.

      [4]余璆. VB對底層訪問的典型例子[J].計算機應用與軟件; 2004(11):115-117.

      永靖县| 卢湾区| 南充市| 商水县| 苏尼特右旗| 湟中县| 临潭县| 通化市| 潼关县| 邳州市| 卢氏县| 米脂县| 耿马| 南丰县| 永川市| 茂名市| 镇平县| 武清区| 普陀区| 浏阳市| 七台河市| 六盘水市| 中卫市| 抚宁县| 东海县| 河北省| 旬邑县| 柞水县| 普陀区| 大洼县| 通海县| 陕西省| 察隅县| 吉木乃县| 垫江县| 梁平县| 通山县| 鄂伦春自治旗| 措美县| 正镶白旗| 兴安县|