国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

怎樣用VB存取SQL Server中的圖像數據

2024-08-31 00:46:16
字體:
來源:轉載
供稿:網友

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

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

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

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

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 {table.column text_ptr}[WITH LOG] {data}

table.column為表中的字段,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.img_ct @ptrval 0x024324142342134214213421421454353452341

(2) READTEXT {table.column text_ptr offset size} [HOLDLOCK]

table.column為表中的字段,text_ptr為一個16個字節的指針,offset 為偏移量,即從第幾個字節開始讀數據,size為要讀的字節數,HOLDLOCK 為在讀數據中是否充許其他用戶修改該數據。

例:

DECLARE @ptrval varbinary(16)

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

READTEXT zy_ct.img_ct @ptrval 1 25

(3) UPDATETEXT

{table_name.dest_column_name dest_text_ptr}

{NULL|insert_offset}{ NULL | delete_length}

[WITH LOG][ inserted_data|

{table_name.src_column_name src_text_ptr}]

table_name.dest_column_name 為要修改的text, ntext, 或 image字段;dest_text_ptr為指向其的指針;insert_offset為偏移量,對于text和image為從第幾開始字節開始寫,對于ntext為從第幾個字符(雙字節)開始寫;delete_length為從insert_offset開始刪除delete_length長度的字節(符),為0時不刪除,為NULL時為刪除從insert_offset開始到結束的所有數據。要插入的數據為 inserted_data為,也可是表table_name的src_column_name字段中指針 src_text_ptr所指數據。

例:

DECLARE @ptrval binary(16)

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

UPDATETEXT zy_ct.img_ct @ptrval 16 0x54345

可以看出,這三個函數的使用比較復雜,雖然可以通過生成存貯過程來調用執行,但有一個缺陷是在讀取數據時,READTEXT函數讀取的數據無法直接傳遞回前端應用程序。

共2頁上一頁12下一頁
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沿河| 固始县| 邵阳市| 营山县| 榆林市| 什邡市| 千阳县| 兴化市| 合阳县| 仲巴县| 北辰区| 庆云县| 广东省| 嘉义县| 祁连县| 攀枝花市| 眉山市| 徐州市| 闽清县| 汕尾市| 邢台县| 玛沁县| 本溪市| 清新县| 赫章县| 从江县| 玉门市| 四子王旗| 六盘水市| 新营市| 尉犁县| 清苑县| 集安市| 江孜县| 杭州市| 吴川市| 中方县| 潜江市| 宁南县| 广安市| 醴陵市|