Freigeben über


Ausführen von XPath-Abfragen (SQLXMLOLEDB-Anbieter)

In diesem Beispiel wird die Verwendung der folgenden anbieterspezifischen SQLXMLOLEDB-Eigenschaften veranschaulicht:

  • ClientSideXML

  • Base Path

  • Mapping Schema

In dieser ADO-Beispielanwendung wird eine XPath-Abfrage (Stamm) für ein XSD-Zuordnungsschema (MySchema.xml) angegeben. Das Schema verfügt über ein <Contacts-Element> mit den Attributen ContactID, FirstName und LastName . Im Schema erfolgt die Standardzuordnung: Ein Elementname wird der Tabelle mit demselben Namen zugeordnet, und Attribute eines einfachen Typs werden den Spalten mit denselben Namen zugeordnet.

<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'  
   xmlns:sql='urn:schemas-microsoft-com:mapping-schema'>  
 <xsd:element name= 'root' sql:is-constant='1'>   
    <xsd:complexType>  
       <xsd:sequence>  
         <xsd:element ref = 'Contacts'/>  
       </xsd:sequence>  
    </xsd:complexType>  
  </xsd:element>  
  <xsd:element name='Contacts' sql:relation='Person.Contact'>   
     <xsd:complexType>  
          <xsd:attribute name='ContactID' type='xsd:integer' />  
          <xsd:attribute name='FirstName' type='xsd:string'/>   
          <xsd:attribute name='LastName' type='xsd:string' />   
     </xsd:complexType>  
   </xsd:element>  
</xsd:schema>  

Die Mapping Schema-Eigenschaft stellt das Zuordnungsschema bereit, mit dem die XPath-Abfrage ausgeführt wird. Das Zuordnungsschema kann ein XSD- oder XDR-Schema sein. Die Base Path-Eigenschaft stellt den Dateipfad zum Zuordnungsschema bereit.

Die ClientSideXML-Eigenschaft ist auf True festgelegt. Daher wird das XML-Dokument auf dem Client generiert.

In der Anwendung wird eine XPath-Abfrage direkt angegeben. Daher muss der XPath-Dialekt {ec2a4293-e898-11d2-b1b7-00c04f680c56} enthalten sein.

Hinweis

Im Code müssen Sie den Namen der Instanz von SQL Server in der Verbindungszeichenfolge angeben. Außerdem gibt dieses Beispiel die Verwendung des SQL Server Native Client (SQLNCLI11) für den Datenanbieter an, der zusätzliche Netzwerkclientsoftware installiert werden muss. Weitere Informationen finden Sie unter Systemanforderungen für 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;"  
  
oTestCommand.ActiveConnection = oTestConnection  
oTestCommand.Properties("ClientSideXML") = True  
  
oTestCommand.CommandText = "root"  
oTestStream.Open  
oTestCommand.Dialect = "{ec2a4293-e898-11d2-b1b7-00c04f680c56}"  
oTestCommand.Properties("Output Stream").Value = oTestStream  
oTestCommand.Properties("Base Path").Value = "c:\Schemas\SQLXML4\XPathDirect\"  
oTestCommand.Properties("Mapping Schema").Value = "mySchema.xml"  
oTestCommand.Properties("Output Encoding") = "utf-8"  
oTestCommand.Execute , , adExecuteStream  
oTestStream.Position = 0  
oTestStream.Charset = "utf-8"  
Debug.Print oTestStream.ReadText(adReadAll)  
  
End Sub  
Sub Form_Load()  
 main  
End Sub