Save メソッド

Recordset をファイルまたは Stream オブジェクトに保存します。

構文

  
recordset.Save Destination, PersistFormat  

パラメーター

宛先
任意。 Recordset を保存するファイルの完全なパス名、または Stream オブジェクトへの参照を表すバリアント

PersistFormat
省略可能。 Recordset を保存する形式 (XML または ADTG) を指定する PersistFormatEnum 値。 既定値は adPersistADTG です。

注釈

Save メソッドは、開いている Recordset でのみ呼び出すことができます。 後で宛先から Recordset を復元するには、Open メソッド (ADO Recordset) メソッドを使用してください。

Recordset に対して Filter Property プロパティが有効な場合、フィルターの下でアクセス可能な行のみが保存されます。 Recordset が階層構造の場合、親 Recordset を含め、現在の子の Recordset とその子が保存されます。 子 Recordset の Save メソッドが呼び出されると、子とそのすべての子が保存されますが、親は保存されません。

Recordset を初めて保存するとき、宛先の指定は省略可能です。 宛先を省略すると、Recordset の Source プロパティの値に名前が設定された新しいファイルが作成されます。

最初の保存後に続けて Save を呼び出すときに宛先を省略すると、実行時エラーが発生します。 その後、新しい宛先Save を呼び出すと、Recordset が新しい宛先に保存されます。 ただし、新しい宛先と元の宛先の両方が開きます。

Save でも Recordset または宛先は閉じないため、引き続き Recordset を操作して、最新の変更を保存できます。 Recordset が閉じるまで、宛先は開いたままになります。

セキュリティ上の理由から、Save メソッドでは、Microsoft Internet Explorer によって実行されるスクリプトからの低い、およびカスタムのセキュリティ設定の使用のみが許可されます。

非同期の Recordset のフェッチ、実行、または更新操作の実行中に Save メソッドが呼び出された場合、Save は非同期操作が完了するまで待機します。

レコードは、Recordset の最初の行から保存されます。 Save メソッドが完了すると、現在の行の位置が Recordset の最初の行に移動します。

最良の結果を得るには、CursorLocation プロパティ (ADO) プロパティを Save を使用して adUseClientに設定します。 プロバイダーが Recordset オブジェクトを保存するために必要なすべての機能をサポートしていない場合、Cursor Service がその機能を提供します。

CursorLocation プロパティを adUseServer に設定して Recordset が永続化されている場合、Recordset の更新機能は制限されます。 通常、単一テーブルの更新、挿入、削除のみが許可されます (プロバイダーの機能によって異なります)。 この構成では、Resync メソッドも使用できません。

注意

adVariantadIDispatch、または adIUnknown 型のフィールドでの Recordset の保存は ADO ではサポートされていないため、予測できない結果が発生する可能性があります。

条件文字列形式のフィルター (例: OrderDate > '12/31/1999') のみが、保持された Recordset の内容に影響します。 ブックマークの配列または FilterGroupEnum の値を使用して作成されたフィルターは、保持された Recordset の内容に影響しません。 これらの規則は、クライアント側またはサーバー側カーソルで作成された Recordset に適用されます。

Destination パラメーターは OLE DB IStream インターフェイスをサポートするどのオブジェクトも受け入れることができるため、Recordset を ASP Response オブジェクトに直接保存できます。 詳細については、「XML レコードセットの永続化シナリオ」を参照してください。

次の Visual Basic コードのように、MSXML DOM オブジェクトのインスタンスに XML 形式の Recordset を保存することもできます。

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

注意

階層 Recordset (データ シェイプ) を XML 形式で保存する場合は、2 つの制限が適用されます。 階層 Recordset に保留中の更新が含まれており、パラメーター化された階層 Recordset を保存できない場合は、XML に保存できません。

XML 形式で保存された Recordset は、UTF-8 形式を使用して保存されます。 このようなファイルが ADO Stream に読み込まれると、ストリームの Charset プロパティが UTF-8 形式の適切な値に設定されていない限り、Stream オブジェクトはストリームから Recordset を開こうとしません。

適用対象

参照

Save および Open メソッドの例 (VB)
Save および Open メソッドの例 (VC++)
Open メソッド (ADO Recordset)
Open メソッド (ADO Stream)
SaveToFile メソッド