Bagikan melalui


Aliran Perintah

ADO selalu mendukung input perintah dalam format string yang ditentukan oleh properti CommandText . Sebagai alternatif, dengan ADO 2.7 atau yang lebih baru, Anda juga dapat menggunakan aliran informasi untuk input perintah dengan menetapkan aliran ke properti CommandStream . Anda dapat menetapkan objek ADO Stream , atau objek apa pun yang mendukung antarmuka COM IStream .

Konten aliran perintah hanya diteruskan dari ADO ke penyedia Anda, sehingga penyedia Anda harus mendukung input perintah dengan streaming agar fitur ini berfungsi. Misalnya, SQL Server mendukung kueri dalam bentuk templat XML atau ekstensi OpenXML ke Transact-SQL.

Karena detail aliran harus ditafsirkan oleh penyedia, Anda harus menentukan dialek perintah dengan mengatur properti Dialect . Nilai Dialect adalah string yang berisi GUID, yang ditentukan oleh penyedia Anda. Untuk informasi tentang nilai yang valid untuk Dialect yang didukung oleh penyedia Anda, lihat dokumentasi penyedia Anda.

Contoh Kueri Templat XML

Contoh berikut ditulis dalam VBScript ke database Northwind.

Pertama, inisialisasi dan buka objek Stream yang akan digunakan untuk berisi aliran kueri:

Dim adoStreamQuery  
Set adoStreamQuery = Server.CreateObject("ADODB.Stream")  
adoStreamQuery.Open  

Konten aliran kueri akan menjadi kueri templat XML.

Kueri templat memerlukan referensi ke namespace XML yang diidentifikasi oleh sql: awalan <tag sql:query> . Pernyataan SQL SELECT disertakan sebagai konten templat XML dan ditetapkan ke variabel string sebagai berikut:

sQuery = "<ROOT xmlns:sql='urn:schemas-microsoft-com:xml-sql'>  
<sql:query> SELECT * FROM PRODUCTS ORDER BY PRODUCTNAME </sql:query>  
</ROOT>"  

Selanjutnya, tulis string ke aliran:

adoStreamQuery.WriteText sQuery, adWriteChar  
adoStreamQuery.Position = 0  

Tetapkan adoStreamQuery ke properti CommandStream dari objek Perintah ADO:

Dim adoCmd  
Set adoCmd  = Server.CreateObject("ADODB.Command"")  
adoCmd.CommandStream = adoStreamQuery  

Tentukan Dialek bahasa perintah, yang menunjukkan bagaimana Penyedia SQL Server OLE DB harus menginterpretasikan aliran perintah. Dialek yang ditentukan oleh GUID khusus penyedia:

adoCmd.Dialect = "{5D531CB2-E6Ed-11D2-B252-00C04F681B71}"  

Terakhir, jalankan kueri dan kembalikan hasilnya ke objek Recordset :

Set objRS = adoCmd.Execute