共用方式為


BLOB 與 OLE 物件

SQL Server Native Client OLE DB 提供者會公開ISequentialStream介面,以支援取用者存取 SQL Server NtexttextimageVarchar (max ) 、Nvarchar (max ) 、Varbinary (max) 和 xml 資料類型,作為二進位大型物件 (BLOB) 。 ISequentialStream 上的 Read 方法可讓取用者在可管理的區塊中擷取更多資料。

如需示範此功能的範例,請參閱設定大型資料 (OLE DB)

當取用者在系結以進行資料修改的存取子中提供介面指標時,SQL Server Native Client OLE DB 提供者可以使用取用者實作的 IStorage介面。

對於大型實值資料類型,SQL Server Native Client OLE DB 提供者會檢查IRowset和 DDL 介面中的類型大小假設。 具有 VarcharNvarcharVarbinary 資料類型且大小上限設為無限制的資料行,將會透過傳回資料行資料類型的架構資料列集和介面來表示為 ISLONG。

SQL Server Native Client OLE DB 提供者會分別將Varchar (max) Varbinary (max) Nvarchar (max) 類型公開為 DBTYPE_STR、DBTYPE_BYTES 和 DBTYPE_WSTR。

為了使用這些類型,應用程式具有下列選項:

  • 繫結為類型 (DBTYPE_BYTES、DBTYPE_STR、DBTYPE_WSTR)。 如果緩衝區不夠大,就會進行截斷,這與舊版中的這些類型完全相同,只是現在使用的是較大數值。

  • 繫結為類型,同時指定 DBTYPE_BYREF。

  • 繫結為 DBTYPE_IUNKNOWN 並使用資料流。

如果繫結至 DBTYPE_IUNKNOWN,就會使用 ISequentialStream 資料流功能。 SQL Server Native Client OLE DB 提供者支援將輸出參數系結為大型實值資料類型的DBTYPE_IUNKNOWN,以協助預存程式將這些資料類型當 DBTYPE_IUNKNOWN做傳回值傳回給用戶端的傳回值。

儲存物件的限制

  • SQL Server Native Client OLE DB 提供者只能支援單一開啟的儲存體物件。 開啟多個儲存物件的嘗試 (取得多個 ISequentialStream 介面指標的參考) 會傳回 DBSTATUS_E_CANTCREATE。

  • 在 SQL Server Native Client OLE DB 提供者中,DBPROP_BLOCKINGSTORAGEOBJECTS唯讀屬性的預設值是VARIANT_TRUE。 這表示如果儲存物件作用中,某些方法 (非儲存物件的方法) 將會吃敗,並出現 E_UNEXPECTED。

  • 建立參考儲存體物件的資料列存取子時,SQL Server Native Client OLE DB 提供者必須知道取用者實作儲存物件所呈現的資料長度。 取用者必須在建立存取子所使用的 DBBINDING 結構中繫結長度指標。

  • 如果資料列包含多個大型資料值,而且DBPROP_ACCESSORDER未DBPROPVAL_AO_RANDOM,取用者必須先使用SQL Server Native Client OLE DB 提供者資料指標支援的資料列集來擷取資料列資料,或在擷取其他資料列值之前處理所有大型資料值。 如果DBPROP_ACCESSORDER DBPROPVAL_AO_RANDOM,SQL Server Native Client OLE DB 提供者會將所有 xml 資料類型快取為二進位大型物件, (BLOB) ,以便依任何順序存取。

本節內容

另請參閱

SQL Server Native Client (OLE DB)
使用大型實值型別