VB程序中數據庫的圖片處理的解決方法

發表于:2007-07-14來源:作者:點擊數: 標簽:
在 數據庫 中,我們經常遇到需要處理圖片的情況。例如,如 果我們在產品數據庫中存儲了產品的照片,那將給顧客以直接的 感官認識。 在數據庫中,圖片的特殊性有兩點:1、圖片所占存儲空間常 常是比較大的;2、圖片的處理常常需要外部的程序。 在標準SQL語言
    在數據庫中,我們經常遇到需要處理圖片的情況。例如,如  

果我們在產品數據庫中存儲了產品的照片,那將給顧客以直接的  

感官認識。  

    在數據庫中,圖片的特殊性有兩點:1、圖片所占存儲空間常  

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

    在標準SQL語言中,提供了BLOB和CLOB數據類型來存儲巨大的  

二進制或字符數據。Microsoft SQL Server中的text數據類型相  

當于BLOB,而image數據類型相當于CLOB。  

    小型數據庫我們常用ACCESS。在ACCESS中,備注數據類型可  

以存儲最多為 65,535 個字符,而OLE對象數據類型可以存儲最多  

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

、Microsoft Word 文檔、圖形、聲音或其他二進制數據)。  

    因為圖片的大小常超出備注數據類型的限制,且用OLE類型更  

方便,下面敘述一種在VB程序中處理ACCESS數據庫中圖片處理的  

辦法。  

    在該方法中,我們要利用ACCESS數據庫中的OLE數據類型存儲  

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

    由于OLE對象不能支持ADO和OLEDB,我們要用DAO來連接數據  

。  

    首先,在ACCESS數據庫的表中,增加一個OLE對象數據類型的  

列,用來存儲圖片。  

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

建立數據庫連接。當然,可以用代碼實現,只是比較麻煩,有挑  

戰性,但更靈活。  

    在VB程序中添加一個OLE控件,出現插入對象對話框,選擇新  

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

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

    設置OLE控件的DataSource屬性為Data控件,DataField屬性  

為數據庫表的OLE類型列的名字。  

    就這么簡單,我們可以試著運行它。  

    我們可以右鍵單擊運行中的VB程序的OLE控件,出現編輯和打  

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

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

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

。  

    以上方法我在VB6+ACCESS 2000中測試通過。其實,只要我們  

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

    那么,如果在不支持OLE類型的大型數據庫中,如Oracle、  

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

    在大型數據庫中,我們可以用BLOB或CLOB類型來存儲圖片。  

因為圖片數據是二進制的,用BLOB類型更好。  

    我們把圖片文件的內容整個當作一個BLOB字段,讀入數據庫  

中。  

    我們要在客戶程序中處理圖片時,將數據庫中的BLOB字段讀  

出,寫入到一個臨時文件中,再調用外部程序打開該臨時文件,  

處理完后更新數據庫,最后刪除臨時文件。  

    由于數據庫不支持象Real Movie的流式傳輸,我想,一個臨  

時文件是免不了的。如果你能力強,可以尋求在內存中處理。  

    以上是我對數據庫中的圖片處理的一些看法,希望能對有需  

要的網友有些幫助。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97