程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> Access之圖像文件的存儲

Access之圖像文件的存儲

編輯:關於Access數據庫

一張圖片說明往往勝過千言萬語,不過卻會占用相當多的存儲空間。

人們越來越熱衷於在數據庫中存儲圖像文件。例如銷售產品的說明圖片、工程設計圖紙、公安部門存儲身份證照片和指紋圖像、圖書館數據庫裡的動植物標本照片、商品圖片等等,類似的例子舉不勝舉。其中有很多存儲在數據庫裡的圖像是可以通過浏覽器訪問,提供給很多人使用的。

想要將圖片存儲在數據庫裡有好幾種方法。本文將為大家講述如何在Access裡存儲圖像,不過您也可以稍加變通擴展到其他不同的數據庫引擎。

數據庫裡的圖像

正如文本存儲在文本框、日期存儲在日期欄一樣,圖像也需要特定文件類型來存儲。在SQL Server中,雖然被稱為“圖像”文件,不過在其他的數據庫引擎中,可能有不同的名字,包括那個聽起來很神氣的二進制大型對象(BLOB)數據類型。在Access中,圖像文件以OLE類型字段進行存儲。這裡為對細節感興趣的人總結了用OLE類型存儲圖像文件的利弊。

以OLE對象來存儲圖像會遇到一個問題,那就是Access數據庫膨脹的速度急劇加快,從而使運行速度減慢。特別是當您存儲GIF和JPEG格式文件時尤為明顯,因為OLE會為每一個圖像文件另外創建一個包含顯示信息的位圖文件;也就是說,如果您添加一個1MB的圖像文件,那麼實際占用的數據庫空間要比1MB大多了。這些附加文件比原始文件的容量更大,從而使您的數據庫變得臃腫不堪。牢記一點,Access數據庫的最大存儲空間只有2GB。如果要存儲大量圖像,很快就會達到這一存儲極限,失去可用空間。不過,除了要小心數據庫的膨脹之外,這確實是一個用於存儲少量圖像的簡便之法。而且,如果您要移動數據庫,這些存儲在內的圖像也會隨之移動,不過在下面要講到的方法中可能就不是這樣了。

指向圖像

我們還是使用OLE對象數據類型,不過在選擇圖像時使用“鏈接”選項(見後續實際步驟)。圖像並非復制到數據庫裡,只是向數據庫插入一個鏈接,鏈接到該圖像。

這樣做也是有利有弊。有利的方面顯而易見,是數據庫膨脹問題得到了緩解。如果您對其中存儲在磁盤上的某個圖像文件進行編輯,當您從數據庫內部查看該圖像時,就能看到修改的痕跡。這種特性是好是壞取決於您想要實現的功能。

不過,如果您想把Access文件轉移到另外一台計算機,這些圖像就無法跟著一起轉移了。而且要更新兩者之間的鏈接可能很困難,因為必須存放在Access某處的指向圖像的指針(如C:MyPicsTravelslake.jpg)無法隨時用於編輯。

使用代碼

除了用OLE對象字段,還可以使用文本字段。用這種方法,您不是存儲圖像,而是存儲了該圖像路徑的文本。您可以使用VB代碼來控制圖像的調用,以及圖像顯示的方式。這種做法可以節省大量存儲空間,因為不管圖像有多大,您存儲的都只是一串文本字符串。

此外,如果您把圖像文件轉移到另外的計算機,就算您存儲的圖像文件都不在同一個文件夾,您要做的只是在文本字段運行一個更新查詢把指針指向新的位置。不過不足之處就是必須會用代碼(當然,這取決於用戶的專業知識水平)。如果需要存儲的圖像數量較多,建議使用此方法。

花錢購買具有額外功能的控件

您可以花錢為您的數據庫添加新功能,用來處理和應用圖像文件,如DBPix等。必須得承認,Access的圖像處理功能並不能給您留下什麼深刻印象,像對JPG文件的支持就非常弱。不過將這些文件存儲在Access中還是沒問題的,只是無法在某種形式下顯示出來,至少默認設置下是不行的。要顯示這些常見類型的圖像文件就必須安裝其他軟件。

雖然有很多不足,但存儲和檢索這些圖像文件的過程倒是非產容易。下面我們就來看看具體操作的方法。

進入實際應用階段

首先,創建一個表,添加一個OLE對象數據類型的字段。您會發現幾乎沒有什麼可供設置的屬性。接著點擊“自動窗體”按鈕,創建一個基於該表的默認窗體。奇怪的是,您在窗體裡可以獲得比在表裡更多的圖像屬性控制權。如右擊控件,您會找到可供設置的屬性。現在,右擊圖像控件,選擇“插入對象”,然後單擊“由文件創建”的單選按鈕。從這裡開始您就可以選擇是把圖像嵌入到數據庫還是鏈接到數據庫。您還可以浏覽並選擇圖像文件。

不管您是將其嵌入還是將其鏈接,JPEG文件都不會出現在該控件裡。不過,如果您雙擊控件,就會打開一個包含了圖像的應用程序。另一方面,BMP格式的圖像文件則可以在窗體裡顯示。

用這種方法來添加圖像文件會比較繁瑣,不過您還可以將圖像文件拖放到控件上,這樣會快很多。雖然對於Access對JPEG文件的支持問題有點吹毛求疵,不過,在Access裡處理圖像文件已經是非常簡單容易的了。

輸入和存儲條形碼

在數據庫中存儲物品的條形碼就像存儲圖像一樣越來受到大家重視。這在商品經濟發達的今天倒是顯而易見的。在商品出售之前,其上的條形碼需要被掃描到銷售點的數據庫裡。其實整個過程並不困難。只要您有合適的掃描儀就沒問題。

可以這樣想,我們通常用的輸入設備是鍵盤。當光標出現在某個區域時我們可以打字,這樣就會在屏幕上出現字符。鍵盤可以是USB設備,條形碼掃描儀也可以制成USB設備。所以條形碼掃描儀的制造商就把他們做成像鍵盤一樣的USB簡單輸入設備。就像您可以安裝兩套都能用鼠標設備一樣,您也可以安裝兩個均可用的“鍵盤”,把條形碼讀取器當成另外一個鍵盤一樣正常操作數據庫,把光標從一個字段移動到另一個字段。當光標移動到條形碼字段時,您只要拿起讀碼器,按下按鈕,過一會條形碼上的數字就會在字段中。相當簡單易行。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved