當前位置:學問君>學習教育>畢業論文>

如何用VB存取SQL Server中的圖像數據

學問君 人氣:1.41W

如何用VB存取SQL Server中的圖像數據

如何用VB存取SQL Server中的圖像數據

何益斌 高景昌 李小琳

吉林大學130026

摘要 本文介紹MIS SQL Server對圖像數據的存儲機制和存取方法。針對VB開發工具,介紹了一種透過ADO Field 對象的GetChunk 方法和AppendChunk 方法來存取MIS SQL Server中的圖像數據的方法。

關鍵詞 ADO Field對象 BLOB 對象 GetChunk和AppendChunk 方法 image數據類型 醫院資訊系統

MIS SQL Server

在一個完善的醫院資訊MIS中,圖像數據的存取是必不可少的,比如X光片、CT像片的儲存。一方面,這些圖像數據在遠程診療爲準確診斷病情提供了重要的依據,另一方面,也爲快速查閱病人資料提供了基本條件。圖像數據的存取在其它應用系統如GIS中也有廣泛的應用。

1、 SQL Server中圖像數據的存儲機制

在MIS SQL Server 中,對於小於 8000 個字節的圖像數據可以用二進制型(binary、varbinary)來表示。但通常要儲存的一些醫學影像圖片都會大於 8000個字節。SQL Server提供了一種機制,能存儲每行大到 2G的二進制對象(BLOB),這類對象可包括image、text和ntext三種數據類型。Image數據類型存儲的是二進制數據,最大長度是 231-1 (2,147,483,647)個字節[2][3]。

BLOB數據在MIS SQL Server系統中的存儲方式不同於普通的數據類型,對於普通類型的數據系統直接在用戶定義的.字段上存儲數據值,而對於BLOB類型數據,系統開闢新的存儲頁面來存放這些數據,表中BLOB類型數據字段存放的僅是一個16個字節的指針,該指針指向存放該條記錄的BLOB數據的頁面。

2、 SQL Server中圖像數據的存取

在MIS SQL Server中,當數據小於 8000 個字節時,可以用普通的SQL操縱語句(SELECT、INSERT、UPDATE、DELETE)來完成對字段的操縱,當數據大於8000個字節時,SQL提供了 WRITETEXT 、READTEXT和UPDATETEXT這三個函數來讀取和修改數據。這三個函數的使用方法爲:

(1) WRITETEXT {mn text_ptr}[WITH LOG] {data}

mn爲表中的字段,text_ptr爲一個16個字節的指針,data爲要寫的數據值。可

選參數WITH LOG表示是否要寫入日誌檔案中。

例: DECLARE @ptrval binary(16) --指針

SELECT @ptrval = TEXTPTR(img_ct) FROM zy_ct WHERE id_ct = 20010101001

WRITETEXT zy__ct @ptrval 0x024324142342134214213421421454353452341