Introdução ao provedor SQLXMLOLEDB (SQLXML 4.0)
O Provedor SQLXMLOLEDB é um provedor OLE DB que expõe a funcionalidade do Microsoft SQLXML por meio 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. Ao executar um comando, você deve especificar o sinalizador adExecuteStream, que direciona o ADO para usar o fluxo de saída especificado.
O exemplo a seguir mostra a sintaxe do comando Execute no 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:
Conexão propriedade |
Padrão (se houver) |
Descrição |
---|---|---|
Provedor de Dados | Fornece o PROGID do provedor OLE DB através do qual o SQLXMLOLEDB executa os comandos. A partir do SQLXML 4.0 e SQL Server 2005, esse provedor está contido no SQL Server Native Client; portanto, esse valor de propriedade é restrito a "SQLNCLI11". Para obter mais informações, consulte Programação do SQL Server Native Client. |
O provedor SQLXMLOLEDB expõe as seguintes propriedades de comando específicas do provedor:
Comando propriedade |
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 base também é usado para resolve os caminhos relativos de XSL ou arquivos de esquema de mapeamento que foram especificados nas propriedades XSL ou Mapping Schema. Para obter um exemplo em que essa propriedade é usada, consulte Executando consultas XPath (Provedor SQLXMLOLEDB). |
Clientsidexml | Falso | 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 em que essa propriedade é usada, consulte Executando consultas SQL (provedor SQLXMLOLEDB) ou Executando modelos que contêm consultas SQL (Provedor SQLXMLOLEDB). |
Tipo de conteúdo | 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 dessa propriedade torna-se o campo de tipo de conteúdo que é enviado para o navegador como parte do cabeçalho HTTP, que contém o tipo MIME (Extensões multiuso do Internet Mail) do documento que está sendo enviado como o corpo. |
|
Esquema de mapeamento | NULO | 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 base especificado pela propriedade Caminho Base será usado para resolve o caminho relativo. Se nenhum caminho tiver sido especificado na propriedade Caminho Base, o caminho relativo será relativo ao diretório atual. Ao especificar um valor para a propriedade Esquema de Mapeamento, você pode especificar um caminho de diretório local ou uma URL (http://...). Se você especificar uma URL, deverá configurar o WinHTTP para acessar servidores HTTP e HTTPS por meio de um servidor proxy. Para isso, use o utilitário Proxycfg.exe. Para obter mais informações, consulte "Usando o Utilitário de Configuração do WinHTTP Proxy" na Biblioteca MSDN. Para obter um exemplo em que essa 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 em que essa 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 em que essa 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 base especificado pela propriedade Caminho Base será usado para resolve o caminho relativo. Se nenhum caminho tiver sido especificado na propriedade Caminho Base, o caminho relativo será relativo ao diretório atual. Para obter um exemplo em que essa propriedade é usada, consulte Aplicando uma transformação XSL (Provedor SQLXMLOLEDB). |
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. |