微軟使得將ActiveX數(shù)據(jù)對(duì)象(ADO)的Recordset作為XML在ADO 2.1里保存成為可能。這對(duì)于將Recordset保存在客戶計(jì)算機(jī)上用于脫機(jī)使用很有用處。如果你希望通過可擴(kuò)展樣式表語言轉(zhuǎn)換(XSLT)來操控Recordset的數(shù)據(jù),那么這一能力也是很有用的。
要將Recordset作為XML來保存,就要調(diào)用Save方法,并將目標(biāo)文件及adPersistXML標(biāo)志進(jìn)行傳遞:
Dim rst As Recordset
Set rst = New Recordset
rst.ActiveConnection = "PROVIDER=SQLOLEDB;DATA SOURCE=SQLServer;" & _
"Initial Catalog=pubs;Integrated Security=SSPI"
rst.CursorLocation = adUseClient
rst.Open "Select * from authors where au_lname = 'Smith'"
rst.SaveApp.Path & "\recordset.xml", adPersistXML
rst.Close
如果所指定的文件命已經(jīng)存在,那么對(duì)Save方法的調(diào)用就會(huì)導(dǎo)致一個(gè)運(yùn)行錯(cuò)誤。
要打開已經(jīng)保存的Recordset,就要將文件名傳遞給Recordset的Open方法。設(shè)置ActiveConnection屬性能夠讓你將Recordset保存會(huì)數(shù)據(jù)庫里:
Dim rst As Recordset
Set rst = New Recordset
rst.CursorLocation = adUseClient
rst.OpenApp.Path & "\recordset.xml"
rst.ActiveConnection = "PROVIDER=SQLOLEDB;DATA SOURCE=SQLServer;" & _
"Initial Catalog=pubs;Integrated Security=SSPI"
MsgBoxrst.RecordCount