日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

怎樣用VB存取SQL Server中的圖像數(shù)據(jù)_Mssql數(shù)據(jù)庫教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:淺談SQL Server數(shù)據(jù)倉庫相關概念及構建流程
基本概念: 1.多維數(shù)據(jù)集:多維數(shù)據(jù)集是聯(lián)機分析處理 (OLAP) 中的主要對象,是一項可對數(shù)據(jù)倉庫中的數(shù)據(jù)進行快速訪問的技術。多維數(shù)據(jù)集是一個數(shù)據(jù)集合,通常從數(shù)據(jù)倉庫的子集構造,并組織和匯總成一個由一組維度和度量值定義的多維結構。 2.維度:是多維數(shù)

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

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

1、 SQL Server中圖像數(shù)據(jù)的存儲機制

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

BLOB數(shù)據(jù)在MIS SQL Server系統(tǒng)中的存儲方式不同于普通的數(shù)據(jù)類型,對于普通類型的數(shù)據(jù)系統(tǒng)直接在用戶定義的字段上存儲數(shù)據(jù)值,而對于BLOB類型數(shù)據(jù),系統(tǒng)開辟新的存儲頁面來存放這些數(shù)據(jù),表中BLOB類型數(shù)據(jù)字段存放的僅是一個16個字節(jié)的指針,該指針指向存放該條記錄的BLOB數(shù)據(jù)的頁面。

2、 SQL Server中圖像數(shù)據(jù)的存取

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

(1) WRITETEXT {table.column text_ptr}[WITH LOG] {data}

table.column為表中的字段,text_ptr為一個16個字節(jié)的指針,data為要寫的數(shù)據(jù)值。可選參數(shù)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個字節(jié)的指針,offset 為偏移量,即從第幾個字節(jié)開始讀數(shù)據(jù),size為要讀的字節(jié)數(shù),HOLDLOCK 為在讀數(shù)據(jù)中是否充許其他用戶修改該數(shù)據(jù)。

例:

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為從第幾開始字節(jié)開始寫,對于ntext為從第幾個字符(雙字節(jié))開始寫;delete_length為從insert_offset開始刪除delete_length長度的字節(jié)(符),為0時不刪除,為NULL時為刪除從insert_offset開始到結束的所有數(shù)據(jù)。要插入的數(shù)據(jù)為 inserted_data為,也可是表table_name的src_column_name字段中指針 src_text_ptr所指數(shù)據(jù)。

例:

DECLARE @ptrval binary(16)

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

UPDATETEXT zy_ct.img_ct @ptrval 16 0x54345

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

分享:解答SQL Server 的內(nèi)存為何不斷增加
當SQL Server 數(shù)據(jù)庫引擎在 Microsoft Windows NT 或 Windows 2000 上運行時,其默認內(nèi)存管理行為并不是獲取特定的內(nèi)存量,而是在不產(chǎn)生多余換頁 I/O 的情況下獲取盡可能多的內(nèi)存。為此,數(shù)據(jù)庫引擎獲取盡可能多的可用內(nèi)存,同時保留足夠的可用內(nèi)存以防操作

共2頁上一頁12下一頁
來源:模板無憂//所屬分類:Mssql數(shù)據(jù)庫教程/更新時間:2009-06-27
相關Mssql數(shù)據(jù)庫教程