Bagikan melalui


Menyimpan Rekaman dalam Format XML

Seperti format ADTG, persistensi Recordset dalam format XML diimplementasikan dengan Penyedia Persistensi Microsoft OLE DB. Penyedia ini menghasilkan kumpulan baris baca-saja dan hanya-maju dari file XML yang disimpan atau aliran yang berisi informasi skema yang dihasilkan oleh ADO. Demikian pula, ia dapat mengambil ADO Recordset, menghasilkan XML, dan menyimpannya ke file atau objek apa pun yang mengimplementasikan antarmuka COM IStream . (Bahkan, file hanyalah contoh lain dari objek yang mendukung IStream.) Untuk versi 2.5 dan yang lebih baru, ADO mengandalkan Microsoft XML Parser (MSXML) untuk memuat XML ke dalam Recordset; oleh karena itu msxml.dll diperlukan.

Catatan

Beberapa batasan berlaku saat menyimpan Recordset hierarkis (bentuk data) ke format XML. Anda tidak dapat menyimpan ke XML jika Recordset hierarkis berisi pembaruan yang tertunda, dan Anda tidak dapat menyimpan Recordset hierarkis berparameter. Untuk informasi selengkapnya, lihat Perekaman Yang Difilter dan Hierarkis yang Bertahan.

Cara term mudah untuk mempertahankan data ke XML dan memuatnya kembali melalui ADO adalah dengan metode Simpan dan Buka , masing-masing. Contoh kode ADO berikut menunjukkan penyimpanan data dalam tabel Judul ke file yang bernama titles.sav.

Dim rs as new Recordset  
Dim rs2 as new Recordset  
Dim c as new Connection  
Dim s as new Stream  
  
' Query the Titles table.  
c.Open "provider=sqloledb;data source=MySQLServer;initial catalog=pubs;Integrated Security='SSPI'"  
rs.cursorlocation = adUseClient  
rs.Open "select * from titles", c, adOpenStatic  
  
' Save to the file in the XML format. Note that if you don't specify   
' adPersistXML, a binary format (ADTG) will be used by default.  
rs.Save "titles.sav", adPersistXML  
  
' Save the recordset into the ADO Stream object.  
rs.save s, adPersistXML  
rs.Close  
c.Close  
  
set rs = nothing  
  
' Reopen the file.  
rs.Open "titles.sav",,,,adCmdFile  
' Open the Stream back into a Recordset.  
rs2.open s  

ADO selalu mempertahankan seluruh objek Recordset . Jika Anda ingin mempertahankan subset baris objek Recordset , gunakan metode Filter untuk mempersempit baris atau mengubah klausa pilihan Anda. Namun, Anda harus membuka objek Recordset dengan kursor sisi klien (CursorLocation = adUseClient) untuk menggunakan metode Filter untuk menyimpan subset baris. Misalnya, untuk mengambil judul yang dimulai dengan huruf "b," Anda dapat menerapkan filter ke objek Recordset terbuka:

rs.Filter "title_id like 'B*'"  
rs.Save "btitles.sav", adPersistXML  

ADO selalu menggunakan kumpulan baris Client Cursor Engine untuk menghasilkan objek Recordset yang dapat digulir dan dapat dibukukan di atas data khusus maju yang dihasilkan oleh Penyedia Persistensi.

Bagian ini berisi topik berikut.