ADO Recordset オブジェクト

インスタンス

GetRows
この例では、GetRows メソッドの使用方法を示します。

Recordset オブジェクト

ADO Recordset オブジェクトは、データベースのテーブルから取得したレコードセットを格納します。Recordset オブジェクトはレコードと列(フィールド)で構成されています。

ADOでは、このオブジェクトは最も重要で、データベースの操作に最もよく使用されるオブジェクトです。

ProgID

set objRecordset=Server.CreateObject("ADODB.recordset")

最初に Recordset を開いた場合、現在のレコードポインタは最初のレコードに指し、 BOF と EOF 属性は False です。レコードがない場合、BOF と EOF 属性は True です。

Recordset オブジェクトは、2種類の更新タイプをサポートしています:

  • 即時更新 - Update メソッドが呼び出された場合、すべての変更が即座にデータベースに書き込まれます。
  • バッチ更新 - プロバイダーは複数の変更をキャッシュし、それらの変更を UpdateBatch メソッドを使用してデータベースに送信します。

ADOでは、4種類の異なるカーソル(ポインタ)タイプが定義されています:

  • ドラティングカーソル - 他のユーザーが行った追加、変更、削除を確認することができます。
  • キースタックカーソル - ドラティングカーソルに似ていますが、他のユーザーが行った追加を確認することができず、他のユーザーが削除したレコードにアクセスを防ぎます。他のユーザーが行ったデータの変更は見えます。
  • 静的カーソル - レコードセットの静的コピーを提供し、データの検索やレポートの作成に使用できます。他のユーザーが行った追加、変更、削除は見えません。クライアントのレコードセットオブジェクトを開く際にのみ許可されるカーソルタイプです。
  • 前方のみカーソル - レコードセット内で前方にのみスクロールすることが許可されます。他のユーザーが行った追加、変更、削除は見えません。また、他のユーザーが行った追加、変更、削除は見えません。クライアントのレコードセットオブジェクトを開く際にのみ許可されるカーソルタイプです。

CursorTypeプロパティまたはOpenメソッドのCursorTypeパラメータでカーソルのタイプを設定できます。

注:すべてのプロバイダーがレコードセットオブジェクトのすべてのメソッドとプロパティをサポートしているわけではありません。

属性

属性 説明
AbsolutePage レコードセットオブジェクト中のページを指定する値を設定または返します。
AbsolutePosition レコードセットオブジェクト中の現在のレコードの順序位置(番号位置)を指定する値を設定または返します。
ActiveCommand レコードセットオブジェクトに関連付けられている Command オブジェクトを返します。
ActiveConnection 接続が閉じられている場合、接続の定義を設定または返します。接続が開いている場合、現在の Connection オブジェクトを設定または返します。
BOF 現在のレコードの場所が最初のレコードの前にある場合に true を返し、それ以外の場合 false を返します。
Bookmark 現在のレコードの場所を保存するバックマークを設定または返します。
CacheSize キャッシュされるレコードの数を設定または返します。
CursorLocation カーソルサービスの場所を設定または返します。
CursorType レコードセットオブジェクトのカーソルタイプを設定または返します。
DataMember DataSource属性から参照するオブジェクトから取得するデータメンバーの名前を設定または返します。
DataSource レコードセットオブジェクトとして表示されるデータを含むオブジェクトを指定します。
EditMode 現在のレコードの編集状態を返します。
EOF 現在のレコードの位置が最後のレコードの後にある場合に true を返し、それ以外の場合 false を返します。
Filter レコードセットオブジェクト中のデータに対するフィルタを返します。
Index レコードセットオブジェクトの現在のインデックスの名前を設定または返します。
LockType レコードセットの1つのレコードを編集する際に、ロックタイプを指定する値を設定または返します。
MarshalOptions サーバーに返されるレコードを指定する値を設定または返します。
MaxRecords クエリから返されるRecordsetオブジェクトの最大レコード数を設定または返します。
PageCount Recordsetオブジェクト内のデータページ数を返します。
PageSize Recordsetオブジェクトの単一ページに許可される最大レコード数を設定または返します。
RecordCount Recordsetオブジェクト内のレコード数を返します。
Sort Recordsetのソート基準となる一つまたは複数のフィールド名を設定または返します。
Source 文字列値を設定または返します。この値は、Recordsetオブジェクトのデータソースを示します。
State Recordsetオブジェクトがオープン、クローズ、接続中、実行中、データを取得中であるかどうかを示す値を返します。
Status バッチ更新や大量の操作の現在のレコードの状態に関する情報を返します。
StayInSync 親レコードの位置が変わったときに子レコードの参照が変わるかどうかを設定または返します。

メソッド

メソッド 説明
AddNew 新しいレコードを作成します。
Cancel 一つの実行を取り消します。
CancelBatch 一つのバッチ更新を取り消します。
CancelUpdate Recordsetオブジェクトの一条レコードに対して行った変更を取り消します。
Clone 既存のRecordsetのコピーを作成します。
Close Recordsetを閉じます。
CompareBookmarks 二つのブックマークを比較します。
Delete 一つのレコードまたは複数のレコードを削除します。
Find 指定された条件を満たすレコードを一つ検索します。
GetRows 多条レコードを一つのRecordsetオブジェクトから2次元配列にコピーします。
GetString Recordsetを文字列として返します。
Move Recordsetオブジェクト内でレコード指標を移動します。
MoveFirst レコード指標を最初のレコードに移動します。
MoveLast レコード指標を最後のレコードに移動します。
MoveNext レコード指標を次のレコードに移動します。
MovePrevious レコード指標を前のレコードに移動します。
NextRecordset 一連のコマンドを実行することで、現在のRecordsetオブジェクトをクリアし、次のRecordsetに戻ります。
Open データベース要素を開き、その要素はテーブルのレコード、クエリの結果、または保存されたRecordsetへのアクセスを提供できます。
Requery Recordset オブジェクト内のデータを更新するために、そのオブジェクトに基づくクエリを再実行します。
Resync 現在の Recordset 内のデータを元のデータベースからリフレッシュします。
Save Recordset オブジェクトをファイルや Stream オブジェクトに保存します。
Seek Recordset のインデックスを検索し、指定された値に一致する行を素早く定位し、それを現在行にします。
Supports 布尔値を返し、その値は Recordset オブジェクトが特定の機能をサポートしているかどうかを定義します。
Update Recordset オブジェクト内の一条のレコードに対して行ったすべての変更を保存します。
UpdateBatch すべての Recordset 内の変更をデータベースに保存します。バッチ更新モードで使用してください。

イベント

注意: VBScript や JScript を使用してイベントをハンドルすることはできません(Visual Basic、Visual C++、Visual J++ 言語のみでイベントをハンドルできます)。

イベント 説明
EndOfRecordset Recordset の終わりより後の行に移動しようと試みたときにトリガーされます。
FetchComplete アシスト操作中のすべてのレコードが読み込まれた後にトリガーされます。
FetchProgress アシスト操作中に定期的にトリガーされ、読み込んだレコード数を報告します。
FieldChangeComplete Field オブジェクトの値が変更された後にトリガーされます。
MoveComplete Recordset 内の現在位置が変更された後にトリガーされます。
RecordChangeComplete 一条のレコードが変更された後にトリガーされます。
RecordsetChangeComplete Recordset が変更された後にトリガーされます。
WillChangeField Field オブジェクトの値が変更される前にトリガーされます。
WillChangeRecord 一条のレコードが変更される前にトリガーされます。
WillChangeRecordset Recordset が変更される前にトリガーされます。
WillMove Recordset 内の現在位置が変更される前にトリガーされます。

コレクション

コレクション 説明
Fields この Recordset オブジェクト内の Field オブジェクトの数を示します。
Properties すべての Recordset オブジェクトに含まれる Property オブジェクトを含みます。

Fields コレクションの属性

属性 説明
Count

fields コレクション内の項目の数を返します。0から始まります。

例:

	countfields = rs.Fields.Count
	
Item(named_item/number)

fields コレクション内の特定の項目を返します。

例:

	itemfields = rs.Fields.Item(1)
	または	
	itemfields = rs.Fields.Item("Name")
	

Properties コレクションの属性

属性 説明
Count

properties コレクション内の項目の数を返します。0から始まります。

例:

	countprop = rs.Properties.Count
	
Item(named_item/number)

properties コレクション内の特定の項目を返します。

例:

	itemprop = rs.Properties.Item(1)
	または
	itemprop = rs.Properties.Item("Name")