Compartilhar via


Introdução ao provedor SQLXMLOLEDB (SQLXML 4.0)

O provedor SQLXMLOLEDB é um provedor OLE DB que expõe a funcionalidade SQLXML Microsoft através do ADO (ActiveX Data Objects). No entanto, o provedor só pode executar comandos no modo "write to an output stream" do ADO. SQLXMLOLEDB não é um provedor de conjunto de linhas. Quando você executar um comando, deverá especificar o sinalizador adExecuteStream que direciona o ADO para usar o fluxo de saída especificado. 

O seguinte exemplo mostra a sintaxe do comando Execute na qual o sinalizador adExecuteStream é especificado:

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

Propriedades específicas do provedor SQLXMLOLEDB

O provedor SQLXMLOLEDB expõe a seguinte propriedade de conexão específica do provedor:

Propriedade da

conexão

Padrão

(se houver)

Descrição

Data Provider

 

Fornece o PROGID do provedor OLE DB através do qual o SQLXMLOLEDB executa os comandos. A partir do SQLXML 4.0 e do SQL Server 2005, este provedor passou a fazer parte do SQL Server Native Client; portanto, o valor dessa propriedade se restringe a "SQLNCLI10". Para obter mais informações, consulte Programação do SQL Server 2008 Native Client.

O provedor SQLXMLOLEDB expõe as seguintes propriedades de comando específicas do provedor:

Propriedade do

comando

Padrão

(se houver)

Descrição

Base Path

""

Especifica o caminho do arquivo de base. O caminho do arquivo de base é usado para indicar o local dos arquivos de esquema de mapeamento ou XSL (Stylesheet Language) XML. O caminho do arquivo de base também é usado para resolver os caminhos relativos dos arquivos de esquema de mapeamento ou XSL que foram especificados nas propriedades XSL ou Mapping Schema.

Para obter um exemplo no qual esta propriedade é usada, consulte Executando consultas XPath (provedor SQLXMLOLEDB).

ClientSideXML

False

Defina esta propriedade como True se quiser que o processo de conversão do conjunto de linhas em XML ocorra no cliente, e não no servidor. Isso é útil quando você deseja mover a carga de desempenho para a camada intermediária.

Para obter um exemplo no qual esta propriedade é usada, consulte Executando consultas SQL (provedor SQLXMLOLEDB) ou Executando modelos que contêm consultas SQL (provedor SQLXMLOLEDB).

Content Type

 

Retorna o tipo de conteúdo de saída. Esta é uma propriedade SOMENTE LEITURA.

Esta propriedade fornece informações ao navegador sobre o tipo de conteúdo (como TEXT/XML, TEXT/HTML, imagem/jpeg, e assim por diante). O valor desta propriedade torna-se o campo content-type enviado ao navegador como parte do cabeçalho HTTP, o qual contém o tipo de MIME (Multipurpose Internet Mail Extensions) do documento que está sendo enviado como o corpo.

Mapping Schema

NULL

Se um aplicativo cliente executar uma consulta XPath em um esquema de mapeamento (XDR ou XSD), esta propriedade será usada para especificar o nome do esquema de mapeamento.

O caminho especificado pode ser relativo (xyz/abc/MySchema.xml) ou absoluto (C:\MyFolder\abc\MySchema.xml).

Se um caminho relativo for especificado, o caminho de base especificado pela propriedade Base Path será usado para resolver o caminho relativo. Se nenhum caminho tiver sido especificado na propriedade Base Path, o caminho relativo será relativo ao diretório atual.

Ao especificar um valor para a propriedade Mapping Schema, você pode especificar um caminho de diretório local ou um URL (http://...). Se você especificar um URL, deverá configurar WinHTTP para acessar os servidores HTTP e HTTPS por meio de um servidor proxy. Para isso, use o utilitário Proxycfg.exe. Para obter mais informações, consulte "Using the WinHTTP Proxy Configuration Utility" na Biblioteca MSDN.

Para obter um exemplo no qual esta propriedade é usada, consulte Executando consultas XPath (provedor SQLXMLOLEDB).

namespaces

 

Esta propriedade permite a execução de consultas XPath que usam namespaces. Para obter um exemplo no qual esta propriedade é usada, consulte Executando consultas XPath com namespaces (provedor SQLXMLOLEDB).

ss Stream Flags

 

Esta propriedade é usada para definir tipos específicos de restrições de segurança. Por exemplo, talvez você não queira permitir referências URL a arquivos ou caminhos absolutos para arquivos (como sites externos). Ou você pode optar por não permitir consultas nos modelos.

É possível atribuir estes valores à propriedade:

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

Informações adicionais sobre esses valores são fornecidas na próxima tabela.

xml root

 

Esta propriedade é usada para definir uma marca raiz para o XML resultante. Por exemplo, se você executar consultas SQL no banco de dados e o documento XML resultante não tiver um elemento raiz, o valor da propriedade será usado para adicionar um elemento raiz ao documento.

Para obter um exemplo no qual esta propriedade é usada, consulte Executando consultas SQL (provedor SQLXMLOLEDB).

xsl

 

Esta propriedade é usada para especificar o nome do arquivo XSL quando você deseja aplicar a transformação XSL ao documento XML retornado pela consulta.

O caminho especificado pode ser relativo (xyz/abc/MyXSL.xsl) ou absoluto (C:\MyFolder\abc\MyXSL.xsl).

Se um caminho relativo for especificado, o caminho de base especificado pela propriedade Base Path será usado para resolver o caminho relativo. Se nenhum caminho tiver sido especificado na propriedade Base Path, o caminho relativo será relativo ao diretório atual.

Para obter um exemplo no qual esta propriedade é usada, consulte Applying an XSL Transformation (SQLXMLOLEDB Provider).

A tabela a seguir contém descrições dos valores da propriedade ss Stream Flags.

Valor da propriedade

Descrição

STREAM_FLAGS_DISALLOW_URL

Não são aceitas URLs para esquemas de mapeamento ou XSL.

STREAM_FLAGS_DISALLOW_ABSOLTE_PATH

Um caminho especificado para um esquema de mapeamento ou para XSL deve ser relativo ao caminho de base do próprio modelo.

STREAM_FLAGS_DISALLOW_QUERY

Não são permitidas consultas em um modelo.

STREAM_FLAGS_DONTCACHEMAPPINGSCHEMA

O esquema de mapeamento não é armazenado em cache. Este valor de propriedade é útil durante a fase de desenvolvimento do banco de dados, quando esquemas de banco de dados estão sujeitos a alteração.

STREAM_FLAGS_DONTCACHETEMPLATE

Os modelos não são armazenados em cache.

STREAM_FLAGS_DONTCACHEXSL

XSL não é armazenada em cache.