Поделиться через


Поддержка FILESTREAM (OLE DB)

Начиная с собственного клиента версии 10 для SQL Server 2008 и SQL Server, OLE DB поддерживает улучшенную функциональность FILESTREAM. Дополнительные сведения об этой возможности см. в разделе Поддержка FILESTREAM. Образцы приведены в разделе Filestream и OLE DB.

Для отправки и получения значений varbinary(max) размером больше 2 ГБ приложение использует для привязки параметров и результата тип DBTYPE_IUNKNOWN. Для параметров поставщик должен вызывать интерфейс IUnknown::QueryInterface для ISequentialStream и результатов, возвращающих ISequentialStream.

Для OLE DB проверка, связанная со значениями ISequentialStream, выполняется менее строго. Когда в структуре DBBINDING параметр wType имеет значение DBTYPE_IUNKNOWN, проверку длины можно отключить, убрав значение DBPART_LENGTH из параметра dwPart либо задав длину данных (по смещению obLength в буфере данных), равную ~0. В этом случае поставщик не будет проверять длину значения, а запросит и возвратит все данные, которые можно получить по потоку. Это изменение относится ко всем типам больших объектов (LOB) и XML, но только при подключении к серверу SQL Server 2005 и более поздних версий. Это предоставляет разработчикам большую гибкость, в то же время поддерживая согласованность и обратную совместимость с существующими приложениями и серверами предыдущих версий.

Это изменение влияет на все интерфейсы, которые осуществляют передачу данных, в первую очередь IRowset::GetData, ICommand::Execute и IRowsetFastLoad::InsertRow.

См. также

Другие ресурсы

Программирование собственного клиента SQL Server