Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Поставщик OLE DB собственного клиента SQL Server предоставляет интерфейс ISequentialStream для поддержки доступа потребителей к SQL Server ntext, text, image, varchar(max),nvarchar(max), varbinary(max)и xml-типов данных в виде двоичных больших объектов (BLOB). Метод Read в ISequentialStream позволяет потребителю получать много данных в управляемых блоках.
Пример, демонстрирующий эту функцию, см. в разделе "Настройка больших данных" (OLE DB).
Поставщик OLE DB собственного клиента SQL Server может использовать интерфейс IStorage , реализованный потребителем, когда потребитель предоставляет указатель интерфейса в методе доступа, привязанном к изменениям данных.
Для типов данных больших значений поставщик OLE DB sql Server Native Client проверяет допущения размера типов в интерфейсах IRowset и DDL. Столбцы с типами данных varchar, nvarchar и varbinary с максимальным размером, равным неограниченному, будут представлены как ISLONG через наборы строк схемы и интерфейсы, возвращающие типы данных столбцов.
Поставщик OLE DB собственного клиента SQL Server предоставляет типы varchar(max), varbinary(max) и nvarchar(max) как DBTYPE_STR, DBTYPE_BYTES и DBTYPE_WSTR соответственно.
Для работы с этими типами приложение имеет следующие параметры:
Привязка в качестве типа (DBTYPE_STR, DBTYPE_BYTES, DBTYPE_WSTR). Если буфер недостаточно велик, произойдет усечение, точно так же, как и для этих типов в предыдущих выпусках (хотя теперь доступны большие значения).
Привязка в качестве типа и указание DBTYPE_BYREF.
Выполните привязку, указав тип DBTYPE_IUNKNOWN, и используйте потоковую передачу.
При привязке к DBTYPE_IUNKNOWN используется функция потока ISequentialStream. Поставщик OLE DB собственного клиента SQL Server поддерживает привязку выходных параметров в качестве DBTYPE_IUNKNOWN для типов данных больших значений для упрощения сценариев, когда хранимая процедура возвращает эти типы данных в качестве возвращаемых значений, которые будут предоставляться как DBTYPE_IUNKNOWN клиенту.
Ограничения объектов хранилища
Поставщик OLE DB собственного клиента SQL Server может поддерживать только один открытый объект хранилища. Пытается открыть несколько объектов хранилища (чтобы получить ссылку на несколько указателей интерфейса ISequentialStream ) DBSTATUS_E_CANTCREATE.
В поставщике OLE DB собственного клиента SQL Server значение по умолчанию свойства DBPROP_BLOCKINGSTORAGEOBJECTS только для чтения VARIANT_TRUE. Это означает, что если объект хранилища активен, некоторые методы (отличные от объектов хранилища) завершаются ошибкой с E_UNEXPECTED.
Длина данных, представленных объектом хранилища, реализованным потребителем, должна быть известна поставщику OLE DB собственного клиента SQL Server при создании метода доступа к строкам, ссылающегося на объект хранилища. Потребитель должен привязать индикатор длины в структуре DBBINDING, используемой для создания метода доступа.
Если строка содержит более одного большого значения данных и DBPROP_ACCESSORDER не DBPROPVAL_AO_RANDOM, потребитель должен либо использовать курсор, поддерживаемый поставщиком OLE DB собственного клиента SQL Server, для получения данных строк или обработки всех больших значений данных перед получением других значений строк. Если DBPROP_ACCESSORDER DBPROPVAL_AO_RANDOM, поставщик OLE DB собственного клиента SQL Server кэширует все типы данных XML как двоичные большие объекты (BLOB-объекты), чтобы получить доступ к нему в любом порядке.
В этом разделе
См. также
SQL Server Native Client (OLE DB)
Использование типов больших значений