Введение в поставщик SQLXMLOLEDB (SQLXML 4.0)

Поставщик SQLXMLOLEDB — это поставщик OLE DB, который предоставляет функциональность Microsoft SQLXML через объекты ADO. Однако этот поставщик может выполнять команды только в режиме ADO «запись в выходящий поток». Поставщик SQLXMLOLEDB не является поставщиком набора строк. При выполнении команды необходимо задавать флаг adExecuteStream, который указывает объектам ADO использовать выходящий поток, который был задан.

В следующем примере приведен синтаксис для команды Execute, в котором задан флаг adExecuteStream:

Dim oTestCommand As New ADODB.Command
...
oTestCommand.Properties("Output Stream").Value = oTestStream
oTestCommand.Execute , , adExecuteStream
...

Свойства поставщика SQLXMLOLEDB

Поставщик SQLXMLOLEDB имеет следующие характерные для него свойства соединения.

Соединение

свойство

По умолчанию

(если есть)

Описание

Data Provider

 

Предоставляет идентификатор PROGID поставщика OLE DB, через который SQLXMLOLEDB выполняет команды. Начиная с SQLXML 4.0 и SQL Server 2005, этот поставщик является частью собственного клиента SQL Server; поэтому значение этого свойства может быть только «SQLNCLI11». Дополнительные сведения см. в разделе Программирование собственного клиента SQL Server.

Поставщик SQLXMLOLEDB имеет следующие характерные для него свойства команды.

Команда

свойство

По умолчанию

(если есть)

Описание

Base Path

«»

Указывает базовый путь к файлу. Базовый путь к файлу используется для указания местоположения файлов языка XSL или схемы сопоставления. Базовый путь файла также используется для разрешения путей файлов XSL или схемы сопоставления, которые были указаны в свойстве XSL или Mapping Schema.

Пример использования этого свойства см. в разделе Выполнение запросов XPath (поставщик SQLXMLOLEDB).

ClientSideXML

False

Если требуется, чтобы процесс преобразования набора строк в XML был выполнен на клиенте, а не на сервере, установите этому свойству значение TRUE. Это полезно, когда необходимо переместить нагрузку производительности на средний уровень.

Пример использования этого свойства см. в разделе Выполнение запросов SQL (поставщик SQLXMLOLEDB) или Выполнение шаблонов, содержащих SQL-запросы (поставщик SQLXMLOLEDB).

Content Type

 

Возвращает тип выходящего содержимого. Это свойство доступно только для чтения.

Это свойство предоставляет браузеру сведения о типе содержимого (например, ТЕКСТ/XML, ТЕКСТ/HTML, изображение/jpeg и так далее). Значение этого свойства становится полем content-type, которое отправляется браузеру как часть заголовка HTTP, содержащего MIME-тип документа (который отправляется в качестве текста).

Mapping Schema

NULL

Когда клиентское приложение выполняет запрос XPath к схеме сопоставления (XDR или XSD), это свойство используется для указания имени схемы сопоставления.

Указываемый путь может быть относительным (xyz/abc/МояСхема.xml) или абсолютным (C:\МояПапка\abc\МояСхема.xml).

Если задан относительный путь, то для определения относительного пути используется базовый путь, который определяет свойство Base Path. Если в свойстве Base Path не задан путь, то относительный путь определяется относительно текущего каталога.

При указании значения для свойства Mapping Schema можно ввести путь к локальному каталогу или URL-адрес (http://...). В случае указания URL-адреса необходимо настроить модуль WinHTTP для доступа к серверам HTTP и HTTPS через прокси-сервер. Сделать это можно при помощи программы Proxycfg.exe. Дополнительные сведения см. в статье «Использование программы настройки доступа модуля WinHTTP через прокси-сервер» в библиотеке MSDN.

Пример использования этого свойства см. в разделе Выполнение запросов XPath (поставщик SQLXMLOLEDB).

namespaces

 

Это свойство включает использование запросов XPath, которые используют пространства имен. Пример использования этого свойства см. в разделе Выполнение запросов XPath с пространствами имен (поставщик SQLXMLOLEDB).

ss Stream Flags

 

Это свойство используется для указания конкретных типов ограничений безопасности. Например, может потребоваться запретить URL-ссылки на файлы или абсолютные пути к файлам (например, внешние веб-сайты). Либо может потребоваться запретить запросы в шаблонах.

Свойству могут быть присвоены следующие значения:

1 = STREAM_FLAGS_DISALLOW_URL 2 = STREAM_FLAGS_DISALLOW_ABSOLUTE_PATH 4 = STREAM_FLAGS_DISALLOW_QUERY 8 = STREAM_FLAGS_ DONTCACHEMAPPINGSCHEMA 16 = STREAM_FLAGS_DONTCACHETEMPLATE 32 = STREAM_FLAGS_DONTCACHEXSL

Дополнительные сведения об этих значениях приведены в следующей таблице.

xml root

 

Это свойство используется для определения корневого тега для итогового XML. Например, в случае выполнения запросов SQL к базе данных и отсутствия в итоговом XML-документе одного корневого элемента, значение этого свойства используется для добавления одного корневого элемента в документ.

Пример использования этого свойства см. в разделе Выполнение запросов SQL (поставщик SQLXMLOLEDB).

xsl

 

Это свойство используется для указания имени файла XSL, когда требуется применить преобразование XSL к XML-документу, возвращенному запросом.

Указываемый путь может быть относительным (xyz/abc/МойXSL.xsl) или абсолютным (C:\МояПапка\abc\МойXSL.xsl).

Если задан относительный путь, то для определения относительного пути используется базовый путь, который определяет свойство Base Path. Если в свойстве Base Path не задан путь, то относительный путь определяется относительно текущего каталога.

Пример использования этого свойства см. в разделе Applying an XSL Transformation (SQLXMLOLEDB Provider).

Следующая таблица содержит описания значений свойства ss Stream Flags.

Значение свойства

Описание

STREAM_FLAGS_DISALLOW_URL

URL-адреса не принимаются для схем сопоставления или XSL.

STREAM_FLAGS_DISALLOW_ABSOLTE_PATH

Путь, указываемый для схемы сопоставления или XSL, должен задаваться относительно базового пути самого шаблона.

STREAM_FLAGS_DISALLOW_QUERY

Запросы недопустимы в шаблоне.

STREAM_FLAGS_DONTCACHEMAPPINGSCHEMA

Схема сопоставления не кэшируется. Значение этого свойства полезно на стадии разработки базы данных, когда схемы базы данных часто изменяются.

STREAM_FLAGS_DONTCACHETEMPLATE

Шаблоны не кэшируются.

STREAM_FLAGS_DONTCACHEXSL

XSL не кэшируется.