Open

(PWS4 IIS4 IIS5)
Open — カーソルを開きます。

構文

recordset.Open Source, ActiveConnection, CursorType, LockType, Options

パラメータ

recordset
Recordset オブジェクを指定します。
Source
省略可能です。有効な Command オブジェクト、SQL ステートメント、テーブル名、ストアドプロシージャの呼び出し、URL、または永続的に保存された Recordset が格納されているファイル名または Stream オブジェクト名の評価に使うバリアント型 (Variant) の値を指定します。
ActiveConnection
省略可能です。有効な Connection オブジェクトのオブジェクト変数名の評価に使うバリアント型 (Variant) の値、または ConnectionString パラメータを含む文字列型 (String) の値を指定します。
CursorType
省略可能です。プロバイダが Recordset を開くときに使うカーソルの種類を決めるための CursorTypeEnum 値を指定します。既定値は adOpenForwardOnly です。
LockType
省略可能です。プロバイダが Recordset を開くときに使うロック (同時作用) の種類を決めるための LockTypeEnum 値を指定します。既定値は adLockReadOnly です。
Options
省略可能です。Source 引数が Command オブジェクト以外のソースを表す場合にプロバイダが Source 引数を評価する方法、または以前に保存されていたファイルから Recordset を復元する必要があることを示す長整数型 (Long) の値を指定します。1 つまたは複数の CommandTypeEnum 値または ExecuteOptionEnum 値を指定できます。これらの値は、ビット単位の AND 演算子で組み合わせて使用することができます。

注意 永続化された Recordset を含む Stream から Recordset を開く場合、ExecuteOptionEnum 値の adAsyncFetchNonBlocking を使用しても無効です。この場合、フェッチは同期であり、ブロッキングが行われます。

Open メソッドを使用する場合、ExecuteOpenEnum に adExecuteNoRecords または adExecuteStream を指定しないでください。

戻り値

値を返しません。

説明

ADO の Recordset の既定のカーソルは、サーバー側にある読み取り専用の前方スクロール カーソルです。

Recordset オブジェクトで Open メソッドを使うと、ベース テーブルからのレコード、クエリの結果、または以前に保存された Recordset を表すカーソルを開くことができます。

データ ソースを指定するには、オプションの Source 引数を使います。Source 引数には、Command オブジェクト変数、SQL ステートメント、ストアド プロシージャ、テーブル名、URL、またはファイルのフル パス名を指定できます。Source にファイルのパス名を指定する場合は、フル パス (“c:\dir\file.rst”)、相対パス (“..\file.rst”)、または URL (“http://files/file.rst”) で指定することができます。

ActiveConnection 引数は ActiveConnection プロパティに対応し、Recordset オブジェクトを開く接続を指定します。この引数に接続の定義を指定した場合、ADO では、指定されたパラメータを使って新規接続を開きます。クライアント側カーソル (CursorLocation = adUseClient) で Recordset を開いた後は、このプロパティの値を変更して別のプロバイダに更新を送信することができます。また、このプロパティを Nothing (Microsoft Visual Basic の場合) または NULL に設定すると、その Recordset を任意のプロバイダから切断することができます。ただし、サーバー側カーソルの ActiveConnection を変更すると、エラーが発生します。

Recordset オブジェクトのプロパティに対応するその他の引数 (Source、CursorType、および LockType) と、プロパティの関係は次のとおりです。

* Recordset オブジェクトを開く前のプロパティは、読み取り/書き込み可能です。
* Open メソッドの実行時に、対応する引数を指定しなければ、プロパティの設定値が使用されます。引数を指定した場合は、対応するプロパティの設定値が上書きされて引数の値に更新されます。
* Recordset オブジェクトを開いた後は、プロパティは読み取り専用になります。

注意 Recordset オブジェクトの Source プロパティに有効な Command オブジェクトが設定されている場合、その Recordset オブジェクトが開いていなくても、ActiveConnection プロパティは読み取り専用になります。

Source 引数に Command オブジェクトを指定する場合に、同時に ActiveConnection 引数を指定すると、エラーが発生します。Command オブジェクトの ActiveConnection プロパティは、あらかじめ有効な Connection オブジェクトまたは接続文字列に設定しておく必要があります。

Source 引数に Command オブジェクト以外のソースを指定する場合は、Options 引数を使って Source 引数の評価を最適化することができます。Options 引数が指定されていない場合は、パフォーマンスが低下する可能性があります。これは、引数が SQL ステートメント、ストアドプロシージャ、URL、テーブル名のいずれであるかを判断するために、プロバイダを呼び出す必要があるためです。指定する Source の種類がわかっている場合は、Options 引数を設定することにより、該当するコードに直接ジャンプすることができます。Options 引数が Source の種類と一致しない場合は、エラーが発生します。

Source 引数に Stream オブジェクトを指定する場合は、ほかの引数は指定しないでください。そのようにすると、エラーが発生します。Stream から Recordset を開く場合は、ActiveConnection の情報は保持されません。

Recordset に接続が関連付けられていない場合、Options 引数の既定値は adCmdFile です。代表的な例では、永続的に保存された Recordset オブジェクトの場合がこれに該当します。

データ ソースがレコードを返さない場合、プロバイダは BOF および EOF プロパティの両方を True に設定し、カレントレコードの位置が未定義になります。カーソルの種類によっては、この空の Recordset オブジェクトに新規データを追加することができます。

開いている Recordset オブジェクトでの操作が完了したら、Close メソッドを使って関連するシステムリソースを解放します。オブジェクトを閉じてもメモリからは削除されないので、そのオブジェクトのプロパティ設定を変更し、Open メソッドを使ってもう一度開くことができます。オブジェクトをメモリから完全に削除するには、オブジェクト変数に Nothing を設定します。

ActiveConnection プロパティを設定する前に、オペランドなしで Open メソッドを呼び出して、Recordset の Fields コレクションにフィールドを追加することによって作成された Recordset のインスタンスを作成することができます。

CursorLocation プロパティに adUseClient を設定している場合は、2 とおりの方法で非同期に行を取得することができます。推奨される方法は、Options を adAsyncFetch に設定することです。もう 1 つの方法として、Properties コレクションで “非同期行セット処理” ダイナミックプロパティを使用することもできますが、Options パラメータを adAsyncFetch に設定していない場合は、関連して取得されたイベントが失われる可能性があります。

注意 MS Remote プロバイダのバックグラウンド フェッチは、Open メソッドの Options パラメータを通してのみサポートされます。