FILESTREAM 支持 (OLE DB)

从 SQL Server 2008 和 SQL Server Native Client 10.0 开始,OLE DB 支持增强的 FILESTREAM 功能。有关此功能的详细信息,请参阅FILESTREAM 支持

为了发送和接收大于 2 GB 的 varbinary(max) 值,应用程序在参数和结果绑定中使用 DBTYPE_IUNKNOWN。对于参数,提供程序必须为 ISequentialStream 和返回 ISequentialStream 的结果调用 IUnknown::QueryInterface。 

对于 OLE DB,对与 ISequentialStream 值相关的检查将放宽。当 wType 在 DBBINDING 构造中为 DBTYPE_IUNKNOWN 时,可通过在 dwPart 中省略 DBPART_LENGTH 或通过将数据长度(在数据缓冲区中按偏移量 obLength)设置为 ~0,禁用长度检查。在此情况下,提供程序将不检查值的长度,并且将请求和返回可通过流提供的所有数据。这一更改将适用于所有大型对象 (LOB) 类型和 XML,但只在连接到 SQL Server 2005(或更高版本)服务器时才适用。这将为开发人员提供更高的灵活性,同时为现有应用程序和下级服务器维护一致性和向下兼容性。

这一更改将影响传输数据的所有接口,主要影响 IRowset::GetDataICommand::ExecuteIRowsetFastLoad::InsertRow