明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

VB程序中數(shù)據(jù)庫(kù)的圖片處理的處理方法

[摘要]在數(shù)據(jù)庫(kù)中,我們經(jīng)常遇到需要處理圖片的情況。例如,如 果我們?cè)诋a(chǎn)品數(shù)據(jù)庫(kù)中存儲(chǔ)了產(chǎn)品的照片,那將給顧客以直接的 感官認(rèn)識(shí)。 在數(shù)據(jù)庫(kù)中,圖片的特殊性有兩點(diǎn):1、圖片所占存儲(chǔ)空間常 常是比較大的;2、圖片的處理常常需要外部的程序。 在標(biāo)準(zhǔn)SQL語(yǔ)言中,提供了BLOB和CLO...
    在數(shù)據(jù)庫(kù)中,我們經(jīng)常遇到需要處理圖片的情況。例如,如  

果我們?cè)诋a(chǎn)品數(shù)據(jù)庫(kù)中存儲(chǔ)了產(chǎn)品的照片,那將給顧客以直接的  

感官認(rèn)識(shí)。  

    在數(shù)據(jù)庫(kù)中,圖片的特殊性有兩點(diǎn):1、圖片所占存儲(chǔ)空間常  

常是比較大的;2、圖片的處理常常需要外部的程序。  

    在標(biāo)準(zhǔn)SQL語(yǔ)言中,提供了BLOB和CLOB數(shù)據(jù)類型來存儲(chǔ)巨大的  

二進(jìn)制或字符數(shù)據(jù)。Microsoft SQL Server中的text數(shù)據(jù)類型相  

當(dāng)于BLOB,而image數(shù)據(jù)類型相當(dāng)于CLOB。  

    小型數(shù)據(jù)庫(kù)我們常用ACCESS。在ACCESS中,備注數(shù)據(jù)類型可  

以存儲(chǔ)最多為 65,535 個(gè)字符,而OLE對(duì)象數(shù)據(jù)類型可以存儲(chǔ)最多  

1 G 字節(jié)的鏈接或嵌入的對(duì)象(例如 Microsoft Excel 電子表格  

、Microsoft Word 文檔、圖形、聲音或其他二進(jìn)制數(shù)據(jù))。  

    因?yàn)閳D片的大小常超出備注數(shù)據(jù)類型的限制,且用OLE類型更  

方便,下面敘述一種在VB程序中處理ACCESS數(shù)據(jù)庫(kù)中圖片處理的  

辦法。  

    在該方法中,我們要利用ACCESS數(shù)據(jù)庫(kù)中的OLE數(shù)據(jù)類型存儲(chǔ)  

圖片,在VB程序中用OLE控件處理圖片。  

    由于OLE對(duì)象不能支持ADO和OLEDB,我們要用DAO來連接數(shù)據(jù)  

。  

    首先,在ACCESS數(shù)據(jù)庫(kù)的表中,增加一個(gè)OLE對(duì)象數(shù)據(jù)類型的  

列,用來存儲(chǔ)圖片。  

    其次,在VB程序中,添加一個(gè)Data控件,設(shè)置必要的屬性,  

建立數(shù)據(jù)庫(kù)連接。當(dāng)然,可以用代碼實(shí)現(xiàn),只是比較麻煩,有挑  

戰(zhàn)性,但更靈活。  

    在VB程序中添加一個(gè)OLE控件,出現(xiàn)插入對(duì)象對(duì)話框,選擇新  

建畫筆圖片或圖像文檔、位圖圖像等等反正能處理圖像的OLE類型  

。在此,我們選擇新建畫筆圖片。  

    設(shè)置OLE控件的DataSource屬性為Data控件,DataField屬性  

為數(shù)據(jù)庫(kù)表的OLE類型列的名字。  

    就這么簡(jiǎn)單,我們可以試著運(yùn)行它。  

    我們可以右鍵單擊運(yùn)行中的VB程序的OLE控件,出現(xiàn)編輯和打  

開快捷菜單。選擇編輯將會(huì)在窗口中嵌入畫圖程序的菜單;選擇  

打開將調(diào)用畫圖程序來打開圖片。這樣,我們就可以很方便地編  

輯圖片了。我們可以雙擊OLE控件,這樣相當(dāng)于選擇編輯快捷菜單  

。  

    以上方法我在VB6+ACCESS 2000中測(cè)試通過。其實(shí),只要我們  

理解Windows的OLE技術(shù),以上方法是很容易理解的。  

    那么,如果在不支持OLE類型的大型數(shù)據(jù)庫(kù)中,如Oracle、  

Microsoft SQL Server中,如何來處理圖片呢。  

    在大型數(shù)據(jù)庫(kù)中,我們可以用BLOB或CLOB類型來存儲(chǔ)圖片。  

因?yàn)閳D片數(shù)據(jù)是二進(jìn)制的,用BLOB類型更好。  

    我們把圖片文件的內(nèi)容整個(gè)當(dāng)作一個(gè)BLOB字段,讀入數(shù)據(jù)庫(kù)  

中。  

    我們要在客戶程序中處理圖片時(shí),將數(shù)據(jù)庫(kù)中的BLOB字段讀  

出,寫入到一個(gè)臨時(shí)文件中,再調(diào)用外部程序打開該臨時(shí)文件,  

處理完后更新數(shù)據(jù)庫(kù),最后刪除臨時(shí)文件。  

    由于數(shù)據(jù)庫(kù)不支持象Real Movie的流式傳輸,我想,一個(gè)臨  

時(shí)文件是免不了的。如果你能力強(qiáng),可以尋求在內(nèi)存中處理。  

    以上是我對(duì)數(shù)據(jù)庫(kù)中的圖片處理的一些看法,希望能對(duì)有需  

要的網(wǎng)友有些幫助。