Save メソッド (ADO)

適用先: Access 2013、Office 2013

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

構文

recordset保存先PersistFormat

パラメーター

パラメーター 説明
Destination 省略可能です。 Recordset の保存先であるファイルの完全なパス名を表すバリアント型 ( Variant ) の値、または Stream オブジェクトへの参照を指定します。
PersistFormat 省略可能です。 Recordset の保存形式 (XML または ADTG) を PersistFormatEnum 値で指定します。 既定値は adPersistADTG です。

注釈

Save メソッドは、開いている Recordset でのみ呼び出すことができます。 保存した RecordsetDestination から復元するには、Open メソッドを使用します。

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

Recordset メソッドを初めて保存するとき、Destination は指定してもしなくてもかまいません。 Destination を省略すると、RecordsetSource プロパティの値に設定された名前を使用して、新規ファイルが作成されます。

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

Save メソッドは、RecordsetDestination も閉じないため、Recordset の操作を続行し、最新の変更を保存できます。 Recordset が閉じられるまで、変換先は開いたままです。

セキュリティ上の理由により、 Save メソッドは、Microsoft Internet Explorer で実行されるスクリプトからは、低レベルおよびカスタムのセキュリティ設定の使用時のみ許可されます。 セキュリティに関する問題の詳細については、「Microsoft Data Access Technical Articles Overview」 (英語) の「ADO」 (英語) の、「ADO and RDS Security Issues in Microsoft Internet Explorer」 (英語) を参照してください。

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

レコードは、 Recordset の最初の行から順に保存されます。 Save メソッドが終了すると、カレント行の位置は Recordset の最初の行になります。

最良の結果を得るには、 Save メソッドの実行時に CursorLocation プロパティを adUseClient に設定します。 Recordset オブジェクトを保存するために必要なすべての機能が、ご使用のプロバイダーによってサポートされていない場合は、Cursor Service によりその機能が提供されます。

RecordsetCursorLocation プロパティが adUseServer に設定されたままの場合、その Recordset の更新機能が制限されます。 プロバイダーの機能によって異なりますが、通常は、単一テーブルの更新、挿入、および削除のみが許可されます。 この設定では、 Resync メソッドも利用できません。

注:

[!メモ] ADO では、 Fields の種類が adVariantadIDispatch 、または adIUnknown に設定された Recordset の保存はサポートされていないため、予期しない結果が生じることがあります。

抽出条件文字列の形式の フィルター (OrderDate > '12/31/1999' など) のみが、永続化された Recordset の内容に影響 しますBookmarks の配列で作成されたフィルター、または FilterGroupEnum の値を使用して作成されたフィルターは、永続化された Recordset の内容に影響しません。 これらの規則は、クライアント側カーソルまたはサーバー側カーソルを使用して作成された Recordsets に当てはまります。

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

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

注:

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

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