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.
Dalam contoh aplikasi ADO ini, kueri SQL dijalankan, dan transformasi XSL diterapkan ke hasilnya. Mengatur properti ClientSideXML ke True memberlakukan pemrosesan set baris di sisi klien. Dialek perintah diatur ke {5d531cb2-e6ed-11d2-b252-00c04f681b71}, karena kueri SQL ditentukan dalam templat dan dialek ini harus ditentukan saat menjalankan templat. Properti xsl menentukan file XSL yang akan digunakan untuk menerapkan transformasi. Nilai properti Jalur Dasar digunakan untuk mencari file XSL. Jika Anda menentukan jalur dalam nilai properti xsl, jalur relatif terhadap jalur yang ditentukan dalam properti Jalur Dasar.
Contoh ini menunjukkan cara menggunakan properti khusus Penyedia SQLXMLOLEDB berikut:
ClientSideXML
xsl
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.
Properti xsl ditentukan dalam aplikasi; oleh karena itu, transformasi XSL diterapkan ke dokumen XML yang dihasilkan pada klien, dan hasilnya adalah tabel dua kolom.
Untuk menjalankan perintah templat, dialek templat XML - {5d531cb2-e6ed-11d2-b252-00c04f681b71} - harus ditentukan.
Nota
Dalam kode, Anda harus memberikan nama instans Microsoft SQL Server dalam string koneksi. Selain itu, contoh ini menentukan penggunaan SQL Server Native Client 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 25 FirstName, LastName FROM Person.Contact FOR XML AUTO " & _
" </sql: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\ExecuteTemplateWithXSL\"
oTestCommand.Properties("xsl").Value = "myxsl.xsl"
oTestCommand.Execute , , adExecuteStream
oTestStream.Position = 0
oTestStream.Charset = "utf-8"
Debug.Print oTestStream.ReadText(adReadAll)
End Sub
Sub Form_Load()
main
End Sub
Templat XSL mengikuti. Hasil penerapan templat XSL ini adalah tabel dua kolom.
<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match = 'Person.Contact'>
<TR>
<TD><xsl:value-of select = '@FirstName' /></TD>
<TD><B><xsl:value-of select = '@LastName' /></B></TD>
</TR>
</xsl:template>
<xsl:template match = '/'>
<HTML>
<HEAD>
<STYLE>th { background-color: #CCCCCC }</STYLE>
</HEAD>
<BODY>
<TABLE border='1' style='width:300;'>
<TR><TH colspan='2'>Contacts</TH></TR>
<TR>
<TH >First name</TH>
<TH>Last name</TH>
</TR>
<xsl:apply-templates select = 'ROOT' />
</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>