日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQLServer存儲圖像數(shù)據(jù)大閱兵

文章描述的是SQL Server存儲圖像數(shù)據(jù),我們大家都知道SQL Server數(shù)據(jù)庫中的圖像數(shù)據(jù)的存儲機(jī)制在MIS SQL Server 數(shù)據(jù)庫中,對于小于8000個字節(jié)的圖像數(shù)據(jù),其可以用二進(jìn)制型(binary、varbinary)來表示。但通常要保存的一些醫(yī)學(xué)影像圖片都會大于 8000個字節(jié)。

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)吉安免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

SQL Server提供了一種機(jī)制,能存儲每行大到 2G的二進(jìn)制對象(BLOB),這類對象可包括image、text和ntext三種數(shù)據(jù)類型。Image數(shù)據(jù)類型存儲的是二進(jìn)制數(shù)據(jù),***長度是 231-1 (2,147,483,647)個字節(jié)[2][3]。

BLOB數(shù)據(jù)在MIS SQL Server存儲圖像數(shù)據(jù)系統(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ù)中,當(dāng)數(shù)據(jù)小于 8000 個字節(jié)時,可以用普通的SQL操縱語句(SELECT、INSERT、UPDATE、DELETE)來完成對字段的操縱,當(dāng)數(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表示是否要寫入日志文件中。

例:

 
 
 
  1. DECLARE @ptrval binary(16) --指針 SELECT @ptrval = 
  2. TEXTPTR(img_ct) FROM zy_ct WHERE id_ct = 20010101001 WRITETEXT zy_ct.img_ct @ptrval
  3. 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ù)。

例:

 
 
 
  1. DECLARE @ptrval varbinary(16) SELECT @ptrval = TEXTPTR(img_ct) 
  2. FROM zy_ct WHERE id_ct = 20010101001 READTEXT zy_ct.img_ct @ptrval 
  3. 1 25 (3) UPDATETEXT {table_name.dest_column_name dest_text_ptr}{NULL|insert_offset} { NULL | 
  4. 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開始到結(jié)束的所有數(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ù)的使用比較復(fù)雜,雖然可以通過生成存貯過程來調(diào)用執(zhí)行SQL Server存儲圖像數(shù)據(jù),但有一個缺陷是在讀取數(shù)據(jù)時,READTEXT函數(shù)讀取的數(shù)據(jù)無法直接傳遞回前端應(yīng)用程序。

3、 VB 6.0中圖像數(shù)據(jù)的存取 VB 6.0 的ADO Field 對象提供了GetChunk 方法和AppendChunk 方法來存取BLOB數(shù)據(jù)[1],這兩個函數(shù)實質(zhì)是通過API調(diào)用WRITETEXT 、READTEXT和UPDATETEXT這三個函數(shù),簡化了調(diào)用的方法。

(1)GetChunk 和AppendChunk方法介紹 GetChunk 方法檢索其部分或全部長二進(jìn)制或字符數(shù)據(jù)[4]。GetChunk 調(diào)用返回的數(shù)據(jù)將賦給“變量”。如果 Size 大于剩余的數(shù)據(jù),則 GetChunk 僅返回剩余的數(shù)據(jù)而無需用空白填充“變量”。如果字段為空,則 GetChunk 方法返回 Null。

每個后續(xù)的 GetChunk 調(diào)用將檢索從前一次 GetChunk 調(diào)用停止處開始的數(shù)據(jù)。但是,如果從一個字段檢索數(shù)據(jù)然后在當(dāng)前記錄中設(shè)置或讀取另一個字段的值,ADO 將認(rèn)為已從***個字段中檢索出數(shù)據(jù)。

如果在***個字段上再次調(diào)用 GetChunk 方法,ADO 將把調(diào)用解釋為新的 GetChunk 操作并從記錄的起始處開始讀取。Field 對象的***個 AppendChunk 調(diào)用將數(shù)據(jù)寫入字段,覆蓋所有現(xiàn)有的數(shù)據(jù),隨后的 AppendChunk 調(diào)用則添加到現(xiàn)有數(shù)據(jù)。

由于系統(tǒng)資源總是有限的,如果一次讀(存)取大量數(shù)據(jù)SQL Server存儲圖像數(shù)據(jù),可能會引起服務(wù)器、客戶機(jī)死機(jī)或是服務(wù)器的性能大大下降,因此使用這兩個函數(shù)時,要將圖像數(shù)據(jù)進(jìn)行分段讀寫。


名稱欄目:SQLServer存儲圖像數(shù)據(jù)大閱兵
本文地址:http://www.5511xx.com/article/ccoigoj.html