Save, méthode

Enregistre l’objet Recordset dans un fichier ou un objet Stream.

Syntaxe

  
recordset.Save Destination, PersistFormat  

Paramètres

Destination
facultatif. Un Variant qui représente le nom complet du chemin d’accès du fichier dans lequel l’objet Recordset doit être enregistré ou une référence à un objet Stream.

PersistFormat
facultatif. Une valeur PersistFormatEnum qui spécifie le format dans lequel l’objet Recordset doit être enregistré (XML ou ADTG). La valeur par défaut est adPersistADTG.

Notes

La méthode Save Method ne peut être appelée que sur un Recordset ouvert. Utilisez la méthode Open Method (ADO Recordset) pour restaurer ultérieurement l’objet Recordset à partir de Destination.

Si la propriété Filter est en vigueur pour l’objet Recordset, seules les lignes accessibles sous le filtre sont enregistrées. Si l’objet Recordset est hiérarchique, l’objet Recordset enfant actuel et ses enfants sont enregistrés, y compris le Recordset parent. Si la méthode Save d’un Recordset enfant est appelée, l’enfant et tous ses enfants sont enregistrés, mais le parent ne l’est pas.

La première fois que vous enregistrez l’objet Recordset, il est facultatif de spécifier la Destination. Si vous omettez Destination, un nouveau fichier est créé avec un nom défini sur la valeur de la propriété Source du Recordset.

Omettez Destination lorsque vous appelez Save après le premier enregistrement, ou une erreur d’exécution se produira. Si vous appelez ensuite Save avec une nouvelle Destination, l’objet Recordset est enregistré dans la nouvelle destination. Toutefois, la nouvelle destination et la destination d’origine seront toutes deux ouvertes.

Save ne ferme pas l’objet Recordset ou Destination. Vous pouvez donc continuer à travailler avec l’objet Recordset et enregistrer vos modifications les plus récentes. Destination reste ouverte jusqu’à ce que l’objet Recordset soit fermé.

Pour des raisons de sécurité, la méthode Save autorise uniquement l’utilisation de paramètres de sécurité faibles et personnalisés à partir d’un script exécuté par Microsoft Internet Explorer.

Si la méthode Save est appelée alors qu’une opération asynchrone de récupération, d’exécution ou de mise à jour du Recordset est en cours, Save attend que l’opération asynchrone soit terminée.

Les enregistrements sont enregistrés à compter de la première ligne du Recordset. Lorsque la méthode Save est terminée, la position de ligne actuelle est déplacée vers la première ligne de l’objet Recordset.

Pour obtenir de meilleurs résultats, définissez la propriété CursorLocation (ADO) sur adUseClient avec Save. Si votre fournisseur ne prend pas en charge toutes les fonctionnalités nécessaires pour enregistrer les objets Recordset, le service curseur fournit cette fonctionnalité.

Lorsqu’un Recordset est conservé avec la propriété CursorLocation définie sur adUseServer, la fonctionnalité de mise à jour de l’objet Recordset est limitée. En règle générale, seules les mises à jour, les insertions et les suppressions sur une seule table sont autorisées (en fonction des fonctionnalités du fournisseur). La méthode Resync n’est pas disponible dans cette configuration.

Notes

L’enregistrement d’un Recordset avec des champsde type adVariant, adIDispatch ou adIUnknown n’est pas pris en charge par ADO et peut entraîner des résultats imprévisibles.

Seuls les filtres sous forme de chaînes de critères (par ex. OrderDate > '12/31/1999') affectent le contenu d’un Recordset persistant. Les filtres créés avec un tableau de signets ou à l’aide d’une valeur de FilterGroupEnum n’affectent pas le contenu du Recordset persistant. Ces règles s’appliquent aux Recordset créés avec des curseurs côté client ou côté serveur.

Étant donné que le paramètre Destination peut accepter n’importe quel objet qui prend en charge l’interface IStream OLE DB, vous pouvez enregistrer un Recordset directement dans l’objet Response ASP. Pour plus d’informations, consultez le scénario de persistance de l’objet Recordset XML.

Vous pouvez également enregistrer un Recordset au format XML dans une instance d’un objet DOM MSXML, comme illustré dans le code Visual Basic suivant :

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

Notes

Deux limitations s’appliquent lors de l’enregistrement de Recordsets (formes de données) au format XML. Vous ne pouvez pas enregistrer dans XML si l’objet Recordset hiérarchique contient des mises à jour en attente et que vous ne pouvez pas enregistrer un Recordset hiérarchique paramétrable.

Un Recordset enregistré au format XML est enregistré au format UTF-8. Lorsqu’un tel fichier est chargé dans un flux ADO, l’objet Stream ne tente pas d’ouvrir un Recordset à partir du flux, sauf si la propriété Charset du flux est définie sur la valeur appropriée pour le format UTF-8.

S'applique à

Voir aussi

Save et Open, exemple de méthodes (VB)
Save et Open, exemple de méthodes (VC++)
Open, méthode (objet Recordset ADO)
Open, méthode (Stream ADO)
SaveToFile, méthode