次の方法で共有


XPath クエリの実行 (SQLXMLOLEDB プロバイダ)

この例では、次の SQLXMLOLEDB プロバイダ固有のプロパティについて、使用法を示します。

  • ClientSideXML
  • Base Path
  • Mapping Schema

このサンプル ADO アプリケーションでは、XPath クエリ (root) を XSD マッピング スキーマ (MySchema.xml) に対して指定します。このスキーマには、属性 ContactIDFirstNameLastName をとる <Contacts> 要素が含まれます。このスキーマでは、既定のマッピングにより、要素名は同じ名前のテーブルに、単純型の属性は同じ名前の列にマップされます。

<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 プロパティでは、Xpath クエリを実行する対象のマッピング スキーマを指定します。このマッピング スキーマには XSD または XDR スキーマを指定できます。Base Path プロパティでは、マッピング スキーマへのファイル パスを指定します。

ClientSideXML プロパティは True に設定します。つまり、XML ドキュメントはクライアントで生成されます。

このアプリケーションでは、XPath クエリを直接指定します。したがって、XPath 言語 {ec2a4293-e898-11d2-b1b7-00c04f680c56} を含める必要があります。

ms171953.note(ja-jp,SQL.90).gifメモ :
コードでは、接続文字列に SQL Server インスタンス名を含める必要があります。また、この例ではデータ プロバイダとして SQL Native Client (SQLNCLI) を使用するよう指定していますが、これには追加ネットワーク クライアントがインストールされていることが必要です。詳細については、「SQL 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=SQLNCLI;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