次の方法で共有


レコードセットの現在のレコードとサイズ

このセクションでは、JScript コード例のサンプル レコードセットでカーソルの現在位置を見つけてレコードセットを返す方法について説明します。

現在のレコード

データセット内の現在のレコードは、Recordset オブジェクトのカーソル位置が指すレコードに対応します。 Recordset.OpenCommand.ExecuteConnection.Execute (Connection.NamedCommand および Connection.StoredProcedure を含む) を呼び出した結果、データ ソースから Recordset オブジェクトが返されると、カーソルは最初のレコードを指すように設定されます。 サンプル データセットでは、当初の現在のレコードは "Uncle Bob's Organic Dried Pears" 項目です。

レコードセットのサイズ

Recordset オブジェクトのサイズを調べるには、Recordset.RecordCount プロパティの値を取得します。 この値は、レコードセット内のレコードの数を示す長整数です。 OLEDB Provider for Microsoft SQL Server からデータセットが返された場合、この値は返される行数を示します。 閉じたレコードセットRecordCount プロパティを読み取ると、エラーが発生します。

レコードの数を特定できない場合、プロパティの値は -1 です。

RecordCount プロパティの値は、プロバイダーの機能と使用されるカーソルの種類によっても異なります。 順方向専用カーソルの場合、値は -1 です。 静的カーソルまたはキーセット カーソルの場合、値は Recordset オブジェクトで返される実際のレコード数です。 動的カーソルの場合、値はデータ ソースに応じて -1 または実際のレコード数になります。

Recordcount をサポートするカーソルは、Recordcount をサポートしていないカーソルよりも、より動作が必要なため、より高いコンピューティング能力を必要とします。 特に大きなデータ セットに対処する必要がある場合、レコードの数を知る必要がないのであれば、異なるカーソルの種類を使用すると、アプリケーションのパフォーマンスを向上させることができます。

場合によっては、プロバイダーまたはカーソルで、まずデータ ソースからすべてのレコードをフェッチしないと RecordCount 値を特定できない場合があります。 正確なカウントを確保するには、Recordset.RecordCount を呼び出す前に Recordset.MoveLast メソッドを呼び出します。

JScript コード例を使用して取得したサンプル Recordset オブジェクトは順方向専用カーソルを使用するため、このオブジェクトで RecordCount を呼び出すと常に -1 になります。 次の例に示すように Recordset.Open メソッドを呼び出すコード行を変更する場合、RecordCount プロパティからフェッチされた実際のレコード数が返されます。

oRs.Open sSQL, sCnStr, adOpenStatic, adLockOptimistic, adCmdText   

これは、Microsoft OLE DB Provider for SQL Server の静的カーソルが RecordCount をサポートしているためです。 この例では、5 つのレコードがあるため、RecordCount の値は 5 になります。

このセクションでは、次のトピックを扱います。

レコードセットの境界