Bagikan melalui


Menjalankan Templat yang Berisi Kueri XPath (Penyedia SQLXMLOLEDB)

Contoh ini menunjukkan cara menggunakan properti khusus Penyedia SQLXMLOLEDB berikut:

  • ClientSideXML

  • Jalur Dasar

  • Skema Pemetaan

Dalam contoh aplikasi ADO ini, templat XML yang terdiri dari kueri XPath (root) ditentukan terhadap skema pemetaan XSD (MySchema.xml) yang dijelaskan dalam Mengeksekusi Kueri XPath (Penyedia SQLXMLOLEDB).

Properti Skema Pemetaan menyediakan skema pemetaan XSD tempat kueri XPath dijalankan. Properti Jalur Dasar menyediakan jalur file ke skema pemetaan.

Properti ClientSideXML diatur ke True. Oleh karena itu, dokumen XML dihasilkan pada klien.

Dalam aplikasi, kueri XPath ditentukan secara langsung. Oleh karena itu, dialek {5d531cb2-e6ed-11d2-b252-00c04f681b71} harus disertakan.

Nota

Dalam kode, Anda harus memberikan nama instans Microsoft SQL Server dalam string koneksi. Selain itu, contoh ini menentukan penggunaan SQL Server Native Client (SQLNCLI11) untuk penyedia data yang memerlukan perangkat lunak klien jaringan tambahan untuk diinstal. Untuk informasi selengkapnya, lihat Persyaratan Sistem untuk 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") = "False"  
  
   oTestCommand.CommandText = "<ROOT xmlns:sql='urn:schemas-microsoft-com:xml-sql'> " & _  
        " <sql:xpath-query mapping-schema='mySchema.xml' > " & _  
        "   root " & _  
        "   </sql:xpath-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\TemplateWithXPath\"  
   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  

Ini adalah skema:

<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 = 'Contact'/>  
       </xsd:sequence>  
    </xsd:complexType>  
  </xsd:element>  
  
  <xsd:element name='Contact' 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>