从 SQL Server 2008 和 SQL Server Native Client 10.0 开始,OLE DB 支持增强的 FILESTREAM 功能。 有关此功能的详细信息,请参阅 FILESTREAM 支持。 有关示例,请参阅 Filestream 和 OLE DB。
若要发送和接收 varbinary(max) 大于 2 GB 的值,应用程序在 DBTYPE_IUNKNOWN 参数和结果绑定中使用。 对于参数,提供程序必须调用 ISequentialStream 和返回 ISequentialStream 的结果的 IUnknown::QueryInterface。
对于 OLE DB,将放宽与 ISequentialStream 值相关的检查。 当 wType 位于 DBTYPE_IUNKNOWN 结构中 DBBINDING 时,可以通过省略 DBPART_LENGTHdwPart 或通过将数据长度(在数据缓冲区中的偏移 量 obLength 处)设置为 ~0 来禁用长度检查。 在这种情况下,提供程序不会检查值的长度,并将请求并返回通过流提供的所有数据。 此更改将应用于所有大型对象(LOB)类型和 XML,但仅当连接到 SQL Server 2005(或更高版本)服务器时。 这将为开发人员提供更大的灵活性,同时保持现有应用程序和下层服务器的一致性和向后兼容性。
此更改会影响传输数据的所有接口,主要是 IRowset::GetData、ICommand::Execute 和 IRowsetFastLoad::InsertRow。