FILESTREAM 支援 (OLE DB)

適用於:SQL Server

重要

SQL Server Native Client (通常縮寫為 SNAC) 已從 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中移除。 不建議使用 SQL Server Native Client OLE DB 提供者 (SQLNCLI 或 SQLNCLI11) 和舊版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB) 進行新的開發。 請切換至新的 Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server 以繼續使用。

從 SQL Server 2008 (10.0.x) 和 SQL Server Native Client 10.0 開始,OLE DB 支援增強的 FILESTREAM 功能。 如需此功能的詳細資訊,請參閱 FILESTREAM 支援 。 如需範例,請參閱 Filestream 及 OLE DB

若要傳送與接收大於 2 GB 的 varbinary(max) 值,應用程式會在參數和結果繫結中使用 DBTYPE_IUNKNOWN。 若是參數,提供者必須針對 ISequentialStream 和傳回 ISequentialStream 的結果,呼叫 IUnknown::QueryInterface。

若是 OLE DB,將會放寬與 ISequentialStream 值相關的檢查。 當 wTypeDBBINDING 結構中為 DBTYPE_IUNKNOWN 時,可以從 dwPart 中省略 DBPART_LENGTH,或將資料長度 (在資料緩衝區中的位移 obLength) 設定為 ~ 0,以停用長度檢查。 在此情況下,提供者將不會檢查值的長度,而且將會透過資料流要求並傳回所有可用的資料。 這項變更將會套用到所有大型物件 (LOB) 類型與 XML,但是只會在連線到 SQL Server 2005 (9.x) (或更新版本) 伺服器時才會套用。 這將會提供開發人員更大的彈性,同時維持現有應用程式與下層伺服器的一致性與回溯相容性。

此變更會影響傳輸資料的所有介面,主要是 IRowset::GetData、ICommand::Execute 和 IRowsetFastLoad::InsertRow。

另請參閱

SQL Server Native Client 程式設計