Open メソッド (ADO Recordset)
Recordset オブジェクト上でカーソルを開きます。
構文
recordset.Open Source, ActiveConnection, CursorType, LockType, Options
パラメーター
ソース
省略可能。 有効な Command オブジェクト、SQL ステートメント、テーブル名、ストアド プロシージャ呼び出し、URL、または永続的に格納された Recordset を含むファイルまたは Stream オブジェクトの名前に評価されるVariant。
ActiveConnection
省略可能。 有効な Connection オブジェクト変数名に評価される Variant、または ConnectionString パラメーターが含まれる String。
CursorType
省略可能。 Recordset を開くときにプロバイダーが使用するカーソルの種類を決定する CursorTypeEnum 値。 既定値は adOpenForwardOnly です。
LockType
省略可能。 Recordset を開くときにプロバイダーが使用する必要があるロック (コンカレンシー) の種類を決定する LockTypeEnum 値。 既定値は adLockReadOnly です。
[オプション]
省略可能。 "Source" 引数が Command オブジェクト以外のものを表す場合の、プロバイダーによるその評価方法、または Recordset を以前に保存したファイルから復元する必要があることを示す Long 値。 1 つ以上の CommandTypeEnum または ExecuteOptionEnum 値を指定できます。これは、ビット単位の OR 演算子と組み合わせることができます。
Note
永続化されている Recordset が含まれる Stream から Recordset を開く場合、ExecuteOptionEnum 値に adAsyncFetchNonBlocking を使用しても効果はありません。フェッチは同期され、ブロックされます。
Note
Open では、adExecuteNoRecords または adExecuteStream の ExecuteOpenEnum 値を使用しないでください。
解説
ADO の Recordset の既定のカーソルは、サーバー上に配置されている順方向専用の読み取り専用カーソルです。
Recordset オブジェクトで Open メソッドを使用すると、ベース テーブル、クエリの結果、または以前に保存した Recordset のレコードを表すカーソルが開きます。
省略可能な Source 引数を使用して、 Command オブジェクト変数、SQL ステートメント、ストアド プロシージャ、テーブル名、URL、または完全なファイル パス名のいずれかを使用してデータ ソースを指定します。 "Source" がファイル パス名の場合は、完全なパス ("c:\dir\file.rst")、相対パス ("..\file.rst")、または URL (https://files/file.rst
) を指定できます。
呼び出しが成功したかどうかを判断する簡単な方法がないため、Open メソッドの "Source" 引数を使用して、レコードを返さないアクション クエリを実行することはお勧めしません。 このようなクエリによって返される Recordset は閉じられます。 SQL INSERT ステートメントなどのレコードを返さないクエリを実行するには、Command オブジェクトの Execute メソッドまたは Connection オブジェクトの Execute メソッドを代わりに呼び出します。
ActiveConnection 引数は ActiveConnection プロパティに対応し、Recordset オブジェクトを開く接続を指定します。 この引数に接続定義を渡すと、ADO は指定されたパラメーターを使用して新しい接続を開きます。 CursorLocation プロパティを adUseClient に設定してクライアント側カーソルで Recordset を開くと、このプロパティの値を変更して、別のプロバイダーに更新内容を送信できます。 このプロパティを Nothing (Microsoft Visual Basic の場合) または NULL に設定して、任意のプロバイダーから Recordset を切断することもできます。 ただし、サーバー側カーソルの "ActiveConnection" を変更すると、エラーが発生します。
Recordset オブジェクトのプロパティ ("Source"、"CursorType"、"LockType") に直接対応するその他の引数について、プロパティに対する引数の関係は次のとおりです。
Recordset オブジェクトを開く前は、プロパティは読み取り/書き込み可能です。
Open メソッドの実行時に対応する引数を渡す場合を除き、プロパティ設定が使用されます。 引数を渡すと、対応するプロパティ設定がオーバーライドされ、プロパティ設定が引数値で更新されます。
Recordset オブジェクトを開くと、これらのプロパティは読み取り専用になります。
Note
Source プロパティが有効な Command オブジェクトに設定されている Recordset オブジェクトの ActiveConnection プロパティは、Recordset オブジェクトを開いていなくても読み取り専用です。
"Source" 引数に Command オブジェクトを渡し、ActiveConnection 引数も渡すと、エラーが発生します。 Command オブジェクトの ActiveConnection プロパティは、有効な Connection オブジェクトまたは接続文字列に既に設定されている必要があります。
"Source" 引数に Command オブジェクト以外のものを渡す場合は、"Options" 引数を使用して、"Source" 引数の評価を最適化できます。 引数 Options が定義されていない場合は、ADO がプロバイダーを呼び出して、引数が SQL ステートメント、ストアド プロシージャ、URL、またはテーブル名であるかどうかを判断する必要があるため、パフォーマンスが低下する可能性があります。 使用している "Source" の種類がわかっている場合は、"Options" 引数を設定すると、関連するコードに直接ジャンプするように ADO が指示されます。 "Options" 引数が "Source" の種類と一致しない場合は、エラーが発生します。
"Source" 引数で Stream オブジェクトを渡す場合は、他の引数に情報を渡さないでください。 併用した場合、エラーが発生します。 Stream から Recordset が開かれた場合、ActiveConnection 情報は保持されません。
Recordset に接続が関連付けられていない場合、"Options" 引数の既定値は adCmdFile です。 これは、永続的に格納される Recordset オブジェクトの典型的なケースです。
データ ソースからレコードが返されない場合、プロバイダーは BOF と EOF の両方のプロパティを True に設定し、現在のレコード位置は未定義になります。 それでも、カーソルの種類で許可されている場合は、この空の Recordset オブジェクトに新しいデータを追加できます。
開いている Recordset オブジェクトでの操作を完了したら、Close メソッドを使用して、関連付けられているシステム リソースを解放します。 オブジェクトを閉じてもメモリからは削除されません。プロパティ設定を変更し、Open メソッドを使用して後でもう一度開くことができます。 メモリからオブジェクトを完全に削除するには、オブジェクト変数を Nothing に設定します。
ActiveConnectionプロパティを設定する前に、Recordset Fields コレクションにフィールドを追加することによって作成Recordsetのインスタンスを作成するオペランドを指定してOpenを呼び出します。
CursorLocation プロパティを adUseClient に設定している場合は、2 つのいずれかの方法で行を非同期的に取得できます。 推奨される方法は、"Options" を adAsyncFetch に設定することです。 別の方法として、Properties コレクションの "非同期の行セット プロセス" 動的プロパティを使用することもできますが、"Options" パラメーターを adAsyncFetch に設定しないと、関連する取得されたイベントが失われる可能性があります。
Note
MS リモート プロバイダーでのバックグラウンド フェッチは、Open メソッドの "Options" パラメーターでのみサポートされます。
Note
http スキームを使用する URL は、Microsoft OLE DB Provider for Internet Publishing を自動的に呼び出します。 詳細については、「絶対 URL と相対 URL」を参照してください。
CommandTypeEnum と ExecuteOptionEnum 値の特定の組み合わせは無効です。 結合できないオプションの詳細については、ExecuteOptionEnum と CommandTypeEnum のトピックを参照してください。
適用対象
参照
Open および Close メソッドの例 (VB)
Open および Close メソッドの例 (VBScript)
Open および Close メソッドの例 (VC++)
Save および Open メソッドの例 (VB)
Open メソッド (ADO Connection)
Open メソッド (ADO Record)
Open メソッド (ADO Stream)
OpenSchema メソッド
Save メソッド