Teilen über


Save-Methode

Speichert das Recordset in einer Datei oder einem Stream-Objekt

Syntax

  
recordset.Save Destination, PersistFormat  

Parameter

Ziel
Optional. Eine Variante, die den vollständigen Pfadnamen der Datei darstellt, in der das Recordset gespeichert werden soll, oder ein Verweis auf ein Stream-Objekt.

PersistFormat
Optional. Ein PersistFormatEnum-Wert, der das Format angibt, in dem das Recordset gespeichert werden soll (XML oder ADTG). Der Standardwert ist adPersistADTG.

Bemerkungen

Die Save Method-Methode kann nur in einem geöffneten Recordset aufgerufen werden. Verwenden Sie die Open Method (ADO Recordset)-Methode, um das Recordset später aus Destination wiederherzustellen.

Wenn die Filter Property-Eigenschaft für das Recordset wirksam ist, werden nur die Zeilen gespeichert, auf die unter dem Filter zugegriffen werden kann. Wenn das Recordset hierarchisch aufgebaut ist, werden das aktuelle untergeordnete Recordset und seine untergeordneten Elemente gespeichert, einschließlich des übergeordneten Recordset. Wenn die Save-Methode eines untergeordneten Recordset aufgerufen wird, werden das untergeordnete Recordset und alle untergeordneten Elemente gespeichert, das übergeordnete Recordset jedoch nicht.

Wenn Sie das Recordset zum ersten Mal speichern, ist die Angabe des Ziels optional. Wenn Sie Destination auslassen, wird eine neue Datei mit einem Namen erstellt, der dem Wert der Eigenschaft „Source“ des Recordset entspricht.

Lassen Sie das Ziel aus, wenn Sie anschließend Speichern aufrufen, nachdem der erste Speicher- oder Laufzeitfehler aufgetreten ist. Wenn Sie anschließend Speichern mit neuem Ziel aufrufen, wird das Recordset unter dem neuen Ziel gespeichert. Das neue Ziel und das ursprüngliche Ziel sind jedoch geöffnet.

Save schließt weder das Recordset noch Destination, so dass Sie mit dem Recordset weiterarbeiten und Ihre letzten Änderungen speichern können. Destination bleibt geöffnet, bis das Recordset geschlossen wird.

Aus Sicherheitsgründen erlaubt die Methode Save nur die Verwendung von niedrigen und benutzerdefinierten Sicherheitseinstellungen von einem Skript, das vom Microsoft Internet Explorer ausgeführt wird.

Wenn die Methode Save aufgerufen wird, während ein asynchroner Vorgang zum Abrufen, Ausführen oder Aktualisieren von Recordset läuft, dann wartet Save, bis der asynchrone Vorgang abgeschlossen ist.

Datensätze werden beginnend mit der ersten Zeile des Recordset gespeichert. Wenn die Methode Save beendet ist, wird die aktuelle Zeilenposition in die erste Zeile des Recordset verschoben.

Die besten Ergebnisse erzielen Sie, wenn Sie die Eigenschaft CursorLocation Property (ADO) mit Save auf adUseClient setzen. Falls Ihr Anbieter nicht alle Funktionen unterstützt, die zum Speichern von Recordset-Objekten erforderlich sind, stellt der Cursordienst diese Funktionen bereit.

Wenn ein Recordset mit der Eigenschaft CursorLocation, die auf adUseServer eingestellt ist, endgültig gespeichert wird, ist die Aktualisierungsmöglichkeit für das Recordset eingeschränkt. In der Regel sind nur Aktualisierungen, Einfügevorgänge und Löschungen einzelner Tabellen zulässig (abhängig von der Anbieterfunktionalität). Die Resync Method-Methode ist auch in dieser Konfiguration nicht verfügbar.

Hinweis

Das Speichern eines Recordset mit Feldern des Typs adVariant, adIDispatch oder adIUnknown wird von ADO nicht unterstützt und kann zu unvorhersehbaren Ergebnissen führen.

Nur Filter in Form von Kriterienzeichenfolgen (z. B. OrderDate > '12/31/1999') wirken sich auf den Inhalt eines endgültig gespeicherten Recordset aus. Filter, die mit einem Array von Lesezeichen erstellt wurden oder einen Wert aus FilterGroupEnum verwenden, wirken sich nicht auf den Inhalt des endgültig gespeicherten Recordset aus. Diese Regeln gelten für Recordsets, die entweder mit clientseitigen oder serverseitigen Cursors erstellt wurden.

Da der Destination-Parameter jedes Objekt akzeptieren kann, das die OLE DB IStream-Schnittstelle unterstützt, können Sie ein Recordset direkt im ASP Response-Objekt speichern. Weitere Details finden Sie im XML-Recordset-Persistenzszenario.

Sie können auch ein Recordset im XML-Format in einer Instanz eines MSXML-DOM-Objekts speichern. Dies wird im folgenden Visual Basic-Code veranschaulicht:

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.  
...  

Hinweis

Beim Speichern hierarchischer Recordsets (Datenformen) im XML-Format gelten zwei Einschränkungen. Sie können sie nicht im XML-Format speichern, wenn das hierarchische Recordset ausstehende Updates enthält, und Sie können kein parametrisiertes hierarchisches Recordset speichern.

Ein Recordset, das im XML-Format gespeichert ist, wird im UTF-8-Format gespeichert. Wenn eine solche Datei in einen ADO-Stream geladen wird, versucht das Stream-Objekt nicht, ein Recordset aus dem Stream zu öffnen, es sei denn, die Charset-Eigenschaft des Streams wird auf den entsprechenden Wert für das UTF-8-Format festgelegt.

Gilt für

Weitere Informationen

Save- und Open-Methode – Beispiel (VB)
Save- und Open-Methode – Beispiel (VC++)
Open-Methode (ADO-Recordset)
Open-Methode (ADO-Datenstrom)
SaveToFile-Methode