首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 影像資料儲存機制與 ADO 存取實作全解析

     編輯:關於SqlServer

醫療資訊系統(MIS)中 X 光、CT 影像的儲存與存取是典型大型二進位物件(BLOB)應用。本文詳細說明 SQL Server 對 image、text、ntext 資料類型的儲存架構(16 位元組指標指向專用資料頁),並示範使用 ADO GetChunk/AppendChunk 方法分塊讀寫超過 8KB 的影像資料。

BLOB 儲存架構

  • 小資料(≤8000 位元組):直接儲存於資料列內(binary/varbinary)。
  • 大資料(>8000 位元組,最大 2GB):系統分配專用資料頁儲存 BLOB 內容,資料列僅存 16 位元組指標指向首頁。

T-SQL 大物件操作函數

超過 8KB 時需使用 WRITETEXT、READTEXT、UPDATETEXT,支援對 BLOB 進行部分更新與讀取。

VB/ADO 分塊存取範例

' 寫入影像
Set rs = New ADODB.Recordset
rs.Open "SELECT Photo FROM Employees WHERE EmpID=1", cn, adOpenKeyset, adLockOptimistic
rs.Fields("Photo").AppendChunk LoadPicture("photo.jpg")
rs.Update

' 讀取影像
Dim chunks() As Byte
chunks = rs.Fields("Photo").GetChunk(fileSize)
SavePicture chunks, "output.jpg"

此法避免一次性載入大物件導致記憶體壓力,適合醫療、GIS 等大型二進位資料應用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved