Bagikan melalui


Menjalankan Kueri XPath (Penyedia SQLXMLOLEDB)

Contoh ini mengilustrasikan penggunaan properti khusus Penyedia SQLXMLOLEDB berikut:

  • ClientSideXML

  • Base Path

  • Mapping Schema

Dalam contoh aplikasi ADO ini, kueri XPath (root) ditentukan terhadap skema pemetaan XSD (MySchema.xml). Skema memiliki <elemen Kontak> dengan atribut ContactID, FirstName, dan LastName . Dalam skema, pemetaan default terjadi: nama elemen memetakan ke tabel dengan nama yang sama, dan atribut peta jenis sederhana ke kolom dengan nama yang sama.

<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>  

Properti Skema Pemetaan menyediakan skema pemetaan tempat kueri XPath dijalankan. Skema pemetaan dapat berupa skema XSD atau XDR. 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 XPath {ec2a4293-e898-11d2-b1b7-00c04f680c56} harus disertakan.

Nota

Dalam kode, Anda harus memberikan nama instans 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") = 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