偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SQL Server存儲(chǔ)圖像數(shù)據(jù)大閱兵

數(shù)據(jù)庫(kù) SQL Server
我們今天主要描述的是SQL Server存儲(chǔ)圖像數(shù)據(jù),愿在你學(xué)習(xí)SQL Server存儲(chǔ)圖像數(shù)據(jù)中以起到拋磚引玉的作用。

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

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

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

2、 SQL Server中圖像數(shù)據(jù)的存取 在MIS SQL Server存儲(chǔ)圖像數(shù)據(jù)中,當(dāng)數(shù)據(jù)小于 8000 個(gè)字節(jié)時(shí),可以用普通的SQL操縱語(yǔ)句(SELECT、INSERT、UPDATE、DELETE)來(lái)完成對(duì)字段的操縱,當(dāng)數(shù)據(jù)大于8000個(gè)字節(jié)時(shí),SQL提供了 WRITETEXT 、READTEXT和UPDATETEXT這三個(gè)函數(shù)來(lái)讀取和修改數(shù)據(jù)。

這三個(gè)函數(shù)的使用方法為: (1) WRITETEXT {table.column text_ptr}[WITH LOG] {data} table.column為表中的字段,text_ptr為一個(gè)16個(gè)字節(jié)的指針,data為要寫(xiě)的數(shù)據(jù)值???選參數(shù)WITH LOG表示是否要寫(xiě)入日志文件中。

例:

  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為一個(gè)16個(gè)字節(jié)的指針,offset 為偏移量,即從 第幾個(gè)字節(jié)開(kāi)始讀數(shù)據(jù),size為要讀的字節(jié)數(shù),HOLDLOCK 為在讀數(shù)據(jù)中是否充許其他用戶(hù) 修改該數(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為偏移量,對(duì)于text和image為從 第幾開(kāi)始字節(jié)開(kāi)始寫(xiě),對(duì)于ntext為從第幾個(gè)字符(雙字節(jié))開(kāi)始寫(xiě);delete_length 為從insert_offset開(kāi)始刪除delete_length長(zhǎng)度的字節(jié)(符),為0時(shí)不刪除,為NULL時(shí) 為刪除從insert_offset開(kāi)始到結(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 可以看出,這三個(gè)函數(shù)的使用比較復(fù)雜,雖然可以通過(guò)生成存貯過(guò)程來(lái)調(diào)用執(zhí)行SQL Server存儲(chǔ)圖像數(shù)據(jù),但有一個(gè)缺陷是在讀取數(shù)據(jù)時(shí),READTEXT函數(shù)讀取的數(shù)據(jù)無(wú)法直接傳遞回前端應(yīng)用程序。

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

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

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

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

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

【編輯推薦】

  1. SQL Server浮點(diǎn)數(shù)據(jù)類(lèi)型的詳細(xì)解析
  2. SQL Server 使用索引來(lái)對(duì)數(shù)據(jù)訪問(wèn)進(jìn)行優(yōu)化
  3. 卸載SQL Server 2005組件的正確順序
  4. SQL Server使用檢查約束來(lái)驗(yàn)證數(shù)據(jù)實(shí)戰(zhàn)演示
  5. SQL Server存儲(chǔ)過(guò)程的命名標(biāo)準(zhǔn)如何進(jìn)行?

     
責(zé)任編輯:佚名 來(lái)源: TechTarget中國(guó)
相關(guān)推薦

2010-06-30 14:24:08

SQL Server數(shù)

2010-03-24 12:14:20

Linux

2009-08-05 09:59:40

Code Review代碼審查工具

2017-12-22 15:37:46

谷歌IBM微軟

2010-07-02 08:53:06

MIS SQL Ser

2010-07-21 10:50:48

SQL Server存

2010-09-14 10:47:45

sql server存

2009-08-06 16:44:06

2010-07-23 15:03:02

SQL Server數(shù)

2011-01-18 09:12:15

iPadAndroidNoSQL

2014-06-19 13:27:09

2009-03-16 11:06:41

2010-11-10 15:55:08

SQL Server存

2010-06-30 16:48:19

SQL Server數(shù)

2012-04-29 10:13:03

APP

2010-08-31 19:03:59

2010-09-14 10:16:57

sql server

2011-03-24 13:38:47

SQL Server 存儲(chǔ)分頁(yè)

2010-11-12 09:46:55

Sql Server存

2015-09-22 13:08:42

戴爾云計(jì)算
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)