Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Contoh ini mengilustrasikan penggunaan properti khusus Penyedia SQLXMLOLEDB ClientSideXML. Dalam aplikasi sampel ADO sisi klien ini, templat XML yang terdiri dari kueri SQL dijalankan di server.
Karena properti ClientSideXML diatur ke True, pernyataan SELECT tanpa klausa FOR XML dikirim ke server. Server menjalankan kueri dan mengembalikan set baris ke klien. Klien kemudian menerapkan transformasi FOR XML ke set baris dan menghasilkan dokumen XML.
Templat XML menyediakan elemen akar tingkat atas tunggal (<ROOT>) untuk dokumen XML yang dihasilkan; oleh karena itu, properti akar xml tidak disediakan.
Untuk menjalankan templat XML, dialek {5d531cb2-e6ed-11d2-b252-00c04f681b71} harus ditentukan.
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;"
Set oTestCommand.ActiveConnection = oTestConnection
oTestCommand.Properties("ClientSideXML") = True
oTestCommand.CommandText = "<ROOT xmlns:sql='urn:schemas-microsoft-com:xml-sql'> " & _
" <sql:query> " & _
" SELECT TOP 10 FirstName, LastName FROM Person.Contact FOR XML AUTO " & _
" </sql:query> " & _
" </ROOT> "
oTestStream.Open
' You need the dialect if you are executing
' XML templates (not for SQL queries).
oTestCommand.Dialect = "{5d531cb2-e6ed-11d2-b252-00c04f681b71}"
oTestCommand.Properties("Output Stream").Value = oTestStream
oTestCommand.Execute , , adExecuteStream
oTestStream.Position = 0
oTestStream.Charset = "utf-8"
Debug.Print oTestStream.ReadText(adReadAll)
End Sub
Sub Form_Load()
Main
End Sub