Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Несмотря на то, что потребители могут предоставить для возвращающих табличные значения параметров любой объект набора строк, типичные объекты наборов строк реализуются для конечных хранилищ данных и таким образом предоставляют ограниченную производительность. По этой причине поставщик OLE DB собственного клиента SQL Server разрешает пользователям создавать специализированный объект набора строк на основе данных в памяти. Этот специальный объект набора данных в памяти является новым COM-объектом, называемым набором строк возвращающего табличное значение параметра. Он предлагает функциональные возможности, аналогичные набору параметров.
Объекты набора строк возвращающего табличное значение параметра создаются явным образом поставщиком для входных параметров через несколько интерфейсов уровня сеанса. Для одного возвращающего значение параметра существует один объект набора строк. Потребитель может создавать объекты набора строк возвращающего табличное значение параметра либо путем предоставления уже известных метаданных (статический сценарий), либо путем его обнаружения через интерфейсы поставщика (динамический сценарий). Эти два сценария описаны в следующих разделах.
Статический сценарий
Когда сведения о типе известны, поставщик использует метод ITableDefinitionWithConstraints::CreateTableWithConstraints для создания экземпляра объекта набора строк, соответствующего возвращающему табличное значение параметру.
Поле guid (параметр pTableID) содержит специальный идентификатор GUID (CLSID_ROWSET_TVP). Элемент pwszName содержит имя типа возвращающего табличное значение параметра, который потребитель хочет создать. Поле eKind будет установлено в значение DBKIND_GUID_NAME. Данное имя требуется при использовании нерегламентированной инструкции SQL. При вызове процедуры имя является необязательным.
Для статистической обработки потребитель передает параметр pUnkOuter, управляемый через интерфейс IUnknown.
Свойства объекта набора строк возвращающего табличное значение параметра доступны только для чтения, так что установка потребителем каких-либо свойств в rgPropertySets не предусмотрена.
Для элемента rgPropertySets каждой структуры DBCOLUMNDESC потребитель может указать дополнительные свойства для каждого столбца. Эти свойства принадлежат набору свойств DBPROPSET_SQLSERVERCOLUMN. Они позволяют указать для каждого столбца вычисляемые настройки и настройки по умолчанию. Также они поддерживают существующие свойства столбца, например допустимость значений NULL и идентификатор.
Для получения соответствующих сведений от объекта набора строк возвращающего табличные значения параметра потребитель использует метод IRowsetInfo::GetProperties.
Для получения сведения о состоянии NULL, уникальном, вычисленном и обновленном состоянии для каждого столбца потребитель использует метод IColumnsRowset::GetColumnsRowset или IColumnsInfo::GetColumnInfo. Эти методы предоставляют подробные сведения о каждом столбце набора строк возвращающего табличные значения параметра.
Потребитель указывает тип каждого столбца возвращающего табличные значения параметра. Это действие аналогично тому, как указываются столбцы при создании таблицы в SQL Server. Потребитель получает объект набора строк возвращающего табличные значения параметра из поставщика OLE DB собственного клиента SQL Server через выходной параметр ppRowset.
Динамический сценарий
Если потребитель не имеет сведений о типе, для создания экземпляров набора строк возвращающего табличные значения параметра нужно использовать метод IOpenRowset::OpenRowset. Потребитель должен предоставить поставщику имя типа.
В этом сценарии поставщик получает сведения о типе объекта набора строк возвращающего табличные значения параметра из сервера от лица потребителя.
Параметры pTableID и pUnkOuter должны устанавливаться аналогично статическому сценарию. После этого поставщик OLE DB собственного клиента SQL Server получает от сервера сведения о типе (сведения о столбцах и ограничениях) и возвращает объект набора строк возвращающего табличные значения параметра через параметр ppRowset. Данная операция требует связи с сервером, поэтому выполняется не так быстро, как статический сценарий. Динамический сценарий работает только с параметризованными вызовами процедур.
См. также
Задания
Использование возвращающих табличные значения параметров (OLE DB)