Save 方法
語法
recordset.Save Destination, PersistFormat
參數
目的地
選擇性。 一個變數,代表要儲存資料錄集之檔案的完整路徑名稱,或是 Stream 物件的參考。
PersistFormat
選擇性。 一個 PersistFormatEnum 值,指定資料錄集的儲存格式 (XML 或 ADTG)。 預設值為 adPersistADTG。
備註
Save Method 方法只能在開啟的資料錄集上叫用。 使用 Open 方法 (ADO Recordset) 方法,稍後從目的地還原資料錄集。
如果 Filter 屬性對資料錄集有效,則只會儲存篩選下可存取的資料列。 如果資料錄集是階層式,則會儲存目前的子資料錄集及其下層,包括父資料錄集。 如果呼叫子資料錄集的 Save 方法,將會儲存子系及其所有下層,但不會儲存父代。
第一次儲存資料錄集時,您可以選擇指定目的地。 如果您省略目的地,系統將會建立新的檔案,並將名稱設定為資料錄集的 Source 屬性值。
當您後續在第一次儲存或發生執行階段錯誤之後呼叫 Save 時,請省略目的地。 如果您接著使用新的目的地呼叫 Save,資料錄集就會儲存至新的目的地。 不過,新的目的地和原始目的地都會開啟。
Save 不會關閉資料錄集或目的地,因此您可以繼續使用資料錄集並儲存最近的變更。 目的地會保持開啟狀態,直到資料錄集關閉為止。
基於安全性考量,Save 方法只允許從 Microsoft Internet Explorer 執行的指令碼使用低和自訂安全性設定。
如果在非同步資料錄集擷取、執行或更新作業正在進行時呼叫 Save 方法,Save 會等到非同步作業完成為止。
記錄會從資料錄集的第一個資料列開始儲存。 當 Save 方法完成時,目前的資料列位置會移至資料錄集的第一個資料列。
為了獲得最佳結果,請使用 Save 將 CursorLocation 屬性 (ADO) 屬性設定為 adUseClient。 如果您的提供者不支援儲存 Recordset 物件所需的所有功能,資料指標服務將會提供該功能。
若在保存資料錄集時將 CursorLocation 屬性設定為 adUseServer,資料錄集的更新功能會受到限制。 一般而言,只允許單一資料表更新、插入和刪除 (相依於提供者功能)。 在此設定中也無法使用 Resync Method 方法。
注意
ADO 不支援以 adVariant、adIDispatch 或 adIUnknown 類型的欄位儲存資料錄集,這可能會導致無法預期的結果。
只有準則字串形式的篩選條件 (例如 OrderDate > '12/31/1999') 會影響保存的資料錄集內容。 篩選條件若是透過書籤陣列或使用來自 FilterGroupEnum 的值建立的,將不會影響保存的資料錄集內容。 這些規則適用於透過用戶端或伺服器端資料指標建立的資料錄集。
由於 Destination 參數可以接受任何支援 OLE DB IStream 介面的物件,因此您可以將資料錄集直接儲存至 ASP Response 物件。 如需詳細資訊,請參閱 XML 資料錄集保存案例。
您可以將 XML 格式的資料錄集儲存至 MSXML DOM 物件的執行個體,如下列 Visual Basic 程式碼所示:
Dim xDOM As New MSXML.DOMDocument
Dim rsXML As New ADODB.Recordset
Dim sSQL As String, sConn As String
sSQL = "SELECT customerid, companyname, contactname FROM customers"
sConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Northwind.mdb"
rsXML.Open sSQL, sConn
rsXML.Save xDOM, adPersistXML 'Save Recordset directly into a DOM tree.
...
注意
以 XML 格式儲存階層式資料錄集 (資料圖形) 時,會有兩項限制。 如果階層式資料錄集包含擱置中的更新,而且無法儲存參數化的階層式資料錄集,則無法儲存至 XML。
以 XML 格式儲存的資料錄集會使用 UTF-8 格式儲存。 當這類檔案載入 ADO Stream 中時,除非資料流的 Charset 屬性設定為 UTF-8 格式的適當值,否則 Stream 物件不會嘗試從資料流開啟資料錄集。
套用至
另請參閱
Save 和 Open 方法範例 (VB)
Save 和 Open 方法範例 (VC++)
Open 方法 (ADO Recordset)
Open 方法 (ADO Stream)
SaveToFile 方法