一張圖片說明往往勝過千言萬語,不過卻會占用相當多的存儲空間。
人們越來越熱衷於在數據庫中存儲圖像文件。例如銷售產品的說明圖片、工程設計圖紙、公安部門存儲身份證照片和指紋圖像、圖書館數據庫裡的動植物標本照片、商品圖片等等,類似的例子舉不勝舉。其中有很多存儲在數據庫裡的圖像是可以通過浏覽器訪問,提供給很多人使用的。
想要將圖片存儲在數據庫裡有好幾種方法。本文將為大家講述如何在Access裡存儲圖像,不過您也可以稍加變通擴展到其他不同的數據庫引擎。
數據庫裡的圖像
正如文本存儲在文本框、日期存儲在日期欄一樣,圖像也需要特定文件類型來存儲。在SQL Server中,雖然被稱為“圖像”文件,不過在其他的數據庫引擎中,可能有不同的名字,包括那個聽起來很神氣的二進制大型對象(BLOB)數據類型。在Access中,圖像文件以OLE類型字段進行存儲。這裡為對細節感興趣的人總結了用OLE類型存儲圖像文件的利弊。
以OLE對象來存儲圖像會遇到一個問題,那就是Access數據庫膨脹的速度急劇加快,從而使運行速度減慢。特別是當您存儲GIF和JPEG格式文件時尤為明顯,因為OLE會為每一個圖像文件另外創建一個包含顯示信息的位圖文件;也就是說,如果您添加一個1MB的圖像文件,那麼實際占用的數據庫空間要比1MB大多了。這些附加文件比原始文件的容量更大,從而使您的數據庫變得臃腫不堪。牢記一點,Access數據庫的最大存儲空間只有2GB。如果要存儲大量圖像,很快就會達到這一存儲極限,失去可用空間。不過,除了要小心數據庫的膨脹之外,這確實是一個用於存儲少量圖像的簡便之法。而且,如果您要移動數據庫,這些存儲在內的圖像也會隨之移動,不過在下面要講到的方法中可能就不是這樣了。