Aracılığıyla paylaş


XPath Sorgularını Yürütme (SQLXMLOLEDB Sağlayıcısı)

Şunlar için geçerlidir:SQL ServerAzure SQL Veritabanı

Bu örnek, aşağıdaki SQLXMLOLEDB Sağlayıcı'ya özgü özelliklerin kullanımını göstermektedir:

  • ClientSideXML

  • Temel Yol

  • Haritalama Şeması

Bu örnek ADO uygulamasında, bir XPath sorgusu (kök) bir XSD eşleme şemasına (MySchema.xml) göre belirlenmiştir. Şema, ContactID, FirstName ve Soyadı özelliklerine sahip bir <Contacts> öğesine sahiptir. Şemada varsayılan eşleme gerçekleşir: bir eleman adı aynı isimli tabloya eşlenir ve basit tip özellikler aynı isimlere sahip sütunlara eşlenir.

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

Mapping Schema özelliği, XPath sorgusunun uygulandığı eşleme şemasını sağlar. Eşleme şeması XSD veya XDR şeması olabilir. Temel Yol özelliği, eşleme şemasına dosya yolunu sağlar.

ClientSideXML özelliği True olarak ayarlanmıştır. Bu nedenle, XML belgesi istemci üzerinde oluşturulur.

Uygulamada, doğrudan bir XPath sorgusu belirtilir. Bu nedenle, XPath lehçesi {ec2a4293-e898-11d2-b1b7-00c04f680c56} dahil edilmelidir.

Uyarı

Kodda, bağlantı dizesinde SQL Server örneğinin adını belirtmeniz gerekir. Ayrıca, bu örnek, veri sağlayıcısı için SQL Server Native Client (SQLNCLI11) kullanımını belirtir ve bu da ek ağ istemcisi yazılımının kurulmasını gerektirir. Daha fazla bilgi için SQL Server Native Client için Sistem Gereksinimleri bölümüne bakınız.

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