>  本文介紹MISSQLServer對(duì)圖像數(shù)據(jù)的存儲(chǔ)機(jī)制和存取方法。針對(duì)VB開發(fā)工具,介紹了一種通過(guò)ADOField對(duì)象的GetChunk方法和AppendChunk方法來(lái)存取MISSQLSe">
如何用vb存取sql server中的圖像數(shù)據(jù)--

如何用vb存取sql server中的圖像數(shù)據(jù)--

ID:20870708

大?。?1.00 KB

頁(yè)數(shù):4頁(yè)

時(shí)間:2018-10-17

如何用vb存取sql server中的圖像數(shù)據(jù)--_第1頁(yè)
如何用vb存取sql server中的圖像數(shù)據(jù)--_第2頁(yè)
如何用vb存取sql server中的圖像數(shù)據(jù)--_第3頁(yè)
如何用vb存取sql server中的圖像數(shù)據(jù)--_第4頁(yè)
資源描述:

《如何用vb存取sql server中的圖像數(shù)據(jù)--》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)

1、如何用VB存取SQLServer中的圖像數(shù)據(jù)>>  本文介紹MISSQLServer對(duì)圖像數(shù)據(jù)的存儲(chǔ)機(jī)制和存取方法。針對(duì)VB開發(fā)工具,介紹了一種通過(guò)ADOField對(duì)象的GetChunk方法和AppendChunk方法來(lái)存取MISSQLServer中的圖像數(shù)據(jù)的方法?! ≡谝粋€(gè)完善的醫(yī)院信息MIS中,圖像數(shù)據(jù)的存取是必不可少的,比如X光片、CT像片的保存。一方面,這些圖像數(shù)據(jù)在遠(yuǎn)程診療為準(zhǔn)確診斷病情提供了重要的依據(jù),另一方面,也為快速查閱病人資料提供了基本條件。圖像數(shù)據(jù)的存取在其它應(yīng)用系統(tǒng)如GIS中也有廣泛的應(yīng)用?! ?、SQLServer中圖像數(shù)據(jù)的存儲(chǔ)機(jī)制  在MISS

2、QLServer中,對(duì)于小于8000個(gè)字節(jié)的圖像數(shù)據(jù)可以用二進(jìn)制型(binary、varbinary)來(lái)表示。但通常要保存的一些醫(yī)學(xué)影像圖片都會(huì)大于8000個(gè)字節(jié)。SQLServer提供了一種機(jī)制,能存儲(chǔ)每行大到2GB的二進(jìn)制對(duì)象(BLOB),這類對(duì)象可包括image、text和ntext三種數(shù)據(jù)類型。Image數(shù)據(jù)類型存儲(chǔ)的是二進(jìn)制數(shù)據(jù),最大長(zhǎng)度是231-1(2,147,483,647)個(gè)字節(jié)?! LOB數(shù)據(jù)在MISSQLServer系統(tǒng)中的存儲(chǔ)方式不同于普通的數(shù)據(jù)類型,對(duì)于普通類型的數(shù)據(jù)系統(tǒng)直接在用戶定義的字段上存儲(chǔ)數(shù)據(jù)值,而對(duì)于BLOB類型數(shù)據(jù),系統(tǒng)開辟新的存儲(chǔ)頁(yè)面

3、來(lái)存放這些數(shù)據(jù),表中BLOB類型數(shù)據(jù)字段存放的僅是一個(gè)16個(gè)字節(jié)的指針,該指針指向存放該條記錄的BLOB數(shù)據(jù)的頁(yè)面?! ?、SQLServer中圖像數(shù)據(jù)的存取  在MISSQLServer中,當(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提供了zy_ctzy_ctzy_ctg_ctptrval160x54345  可以看出,這三個(gè)函數(shù)的使用比較復(fù)雜,雖然可以通過(guò)生成存貯過(guò)程來(lái)調(diào)用執(zhí)行,但有一個(gè)缺陷是在讀取數(shù)據(jù)時(shí),READTEXT函數(shù)讀取的數(shù)據(jù)無(wú)法直接傳遞回

4、前端應(yīng)用程序。  3、VB6.0中圖像數(shù)據(jù)的存取  VB6.0的ADOField對(duì)象提供了GetChunk方法和AppendChunk方法來(lái)存取BLOB數(shù)據(jù),這兩個(gè)函數(shù)實(shí)質(zhì)是通過(guò)API調(diào)用WRITETEXT、READTEXT和UPDATETEXT這三個(gè)函數(shù),簡(jiǎn)化了調(diào)用的方法?! 。?)GetChunk和AppendChunk方法介紹:  GetChunk方法檢索其部分或全部長(zhǎng)二進(jìn)制或字符數(shù)據(jù)。GetChunk調(diào)用返回的數(shù)據(jù)將賦給變量。如果Size大于剩余的數(shù)據(jù),則GetChunk僅返回剩余的數(shù)據(jù)而無(wú)需用空白填充變量。如果字段為空,則GetChunk方法返回Null。每個(gè)后續(xù)

5、的GetChunk調(diào)用將檢索從前一次GetChunk調(diào)用停止處開始的數(shù)據(jù)。但是,如果從一個(gè)字段檢索數(shù)據(jù)然后在當(dāng)前記錄中設(shè)置或讀取另一個(gè)字段的值,ADO將認(rèn)為已從第一個(gè)字段中檢索出數(shù)據(jù)。如果在第一個(gè)字段上再次調(diào)用GetChunk方法,ADO將把調(diào)用解釋為新的GetChunk操作并從記錄的起始處開始讀取。Fiel123下一頁(yè)>>>>這篇文章來(lái)自..,。d對(duì)象的第一個(gè)AppendChunk調(diào)用將數(shù)據(jù)寫入字段,覆蓋所有現(xiàn)有的數(shù)據(jù),隨后的AppendChunk調(diào)用則添加到現(xiàn)有數(shù)據(jù)?! ∮捎谙到y(tǒng)資源總是有限的,如果一次讀(存)取大量數(shù)據(jù),可能會(huì)引起服務(wù)器、客戶機(jī)死機(jī)或是服務(wù)器的性能大大

6、下降,因此使用這兩個(gè)函數(shù)時(shí),要將圖像數(shù)據(jù)進(jìn)行分段讀寫?! ?2)程序?qū)崿F(xiàn):  程序一:寫數(shù)據(jù)函數(shù):PublicFunctionAppendBlobFromFile(blobColumnAsADODB.Field,ByValFileName)AsBooleanDimFileNumberAsInteger'文件號(hào) DimDataLenAsLong'文件長(zhǎng)度DimChunksAsLong'數(shù)據(jù)塊數(shù)DimChunkAry()AsByte'數(shù)據(jù)塊數(shù)組DimChunkSizeAsLong'數(shù)據(jù)塊大小DimFragmentAsLong'零碎

7、數(shù)據(jù)大小DimlngIAsLong'計(jì)數(shù)器OnErrorGoToErrorHandleAppendBlobFromFile=FalseChunkSize=2048'限制每次讀取的塊大小為2KFileNumber=FreeFile'產(chǎn)生隨機(jī)的文件號(hào)OpenFileNameForBinaryAccessReadAsFileNumber'打開圖像文件DataLen=LOF(FileNumber)'獲得文件長(zhǎng)度IfIsNull(blobColumn)ThenExitFunctionI

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。