Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans cet exemple d’application ADO, une requête SQL est exécutée et une transformation XSL est appliquée au résultat. La définition de la propriété ClientSideXML sur True applique le traitement de l’ensemble de lignes côté client. Le dialecte de commande est défini sur {5d531cb2-e6ed-11d2-b252-00c04f681b71}, car la requête SQL est spécifiée dans un modèle et ce dialecte doit être spécifié lors de l’exécution d’un modèle. La propriété xsl spécifie le fichier XSL à utiliser pour appliquer la transformation. La valeur de la propriété Chemin d’accès de base est utilisée pour rechercher le fichier XSL. Si vous spécifiez un chemin dans la valeur de la propriété xsl, le chemin d’accès est relatif au chemin spécifié dans la propriété Chemin d’accès de base.
Cet exemple montre comment utiliser les propriétés spécifiques au fournisseur SQLXMLOLEDB suivantes :
ClientSideXML
xsl
Dans cet exemple d’application ADO côté client, un modèle XML qui se compose d’une requête SQL est exécuté sur le serveur.
Étant donné que la propriété ClientSideXML a la valeur True, l’instruction SELECT sans la clause FOR XML est envoyée au serveur. Le serveur exécute la requête et retourne un ensemble de lignes au client. Le client applique ensuite la transformation FOR XML à l’ensemble de lignes et produit le document XML.
La propriété xsl est spécifiée dans l’application ; Par conséquent, la transformation XSL est appliquée au document XML généré sur le client et le résultat est une table à deux colonnes.
Pour exécuter la commande de modèle, le dialecte du modèle XML - {5d531cb2-e6ed-11d2-b252-00c04f681b71} - doit être spécifié.
Remarque
Dans le code, vous devez fournir le nom de l’instance de Microsoft SQL Server dans la chaîne de connexion. En outre, cet exemple spécifie l’utilisation de SQL Server Native Client pour le fournisseur de données qui nécessite l’installation d’un logiciel client réseau supplémentaire. Pour plus d’informations, consultez Configuration système requise pour SQL Server Native Client.
Option Explicit
Sub main()
Dim oTestStream As New ADODB.Stream
Dim oTestConnection As New ADODB.Connection
Dim oTestCommand As New ADODB.Command
oTestConnection.Open "provider=SQLXMLOLEDB.4.0;data provider=SQLNCLI11;data source=SqlServerName;initial catalog=AdventureWorks;Integrated Security=SSPI;"
Set oTestCommand.ActiveConnection = oTestConnection
oTestCommand.Properties("ClientSideXML") = True
oTestCommand.CommandText = _
"<ROOT xmlns:sql='urn:schemas-microsoft-com:xml-sql' >" & _
" <sql:query> " & _
" SELECT TOP 25 FirstName, LastName FROM Person.Contact FOR XML AUTO " & _
" </sql:query> " & _
" </ROOT> "
oTestStream.Open
' You need the dialect if you are executing a template.
oTestCommand.Dialect = "{5d531cb2-e6ed-11d2-b252-00c04f681b71}"
oTestCommand.Properties("Output Stream").Value = oTestStream
oTestCommand.Properties("Base Path").Value = "c:\Schemas\SQLXML4\ExecuteTemplateWithXSL\"
oTestCommand.Properties("xsl").Value = "myxsl.xsl"
oTestCommand.Execute , , adExecuteStream
oTestStream.Position = 0
oTestStream.Charset = "utf-8"
Debug.Print oTestStream.ReadText(adReadAll)
End Sub
Sub Form_Load()
main
End Sub
Le modèle XSL suit. Le résultat de l’application de ce modèle XSL est une table à deux colonnes.
<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match = 'Person.Contact'>
<TR>
<TD><xsl:value-of select = '@FirstName' /></TD>
<TD><B><xsl:value-of select = '@LastName' /></B></TD>
</TR>
</xsl:template>
<xsl:template match = '/'>
<HTML>
<HEAD>
<STYLE>th { background-color: #CCCCCC }</STYLE>
</HEAD>
<BODY>
<TABLE border='1' style='width:300;'>
<TR><TH colspan='2'>Contacts</TH></TR>
<TR>
<TH >First name</TH>
<TH>Last name</TH>
</TR>
<xsl:apply-templates select = 'ROOT' />
</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>