CDaoRecordset クラス
データ ソースから選択された 1 組のレコードセットを表現します。
class CDaoRecordset : public CObject
解説
CDaoRecordset オブジェクトは、一般的に "レコードセット" と呼ばれ、次の 3 つのフォームで使用できます。
テーブル タイプのレコードセットは、1 つのデータベース テーブルのレコードのチェック検証、追加、変更、および削除を行うために使用できるベース テーブルを表します。
ダイナセット タイプのレコードセットは、更新できるレコードを持つクエリの結果です。 これらのレコードセットは、基になるデータベース テーブルのレコードのチェック、追加、変更、および削除を行うために使用できるレコードの集約です。 ダイナセット タイプのレコードセットは、データベースの 1 つ以上のテーブルのフィールドを持つことができます。
スナップショット タイプのレコードセットは、データの検索、レポートの生成などに使用できるレコードの集約の静的コピーです。 これらのレコードセットは、データベースの 1 つ以上のテーブルのフィールドを持つことができますが、更新はできません。
どの形式のレコードセットも、レコードセットが開かれたときに固定されるレコードの集約を表します。 テーブル タイプのレコードセット、またはダイナセット タイプのレコードセットでレコードにスクロールすると、レコードセットが開かれた後に、ほかのユーザー、またはアプリケーションのほかのレコードセットのどちらかにより行われた変更を反映します。 スナップショット タイプのレコードセットは、更新できません。CDaoRecordset を直接使用することも、CDaoRecordset からアプリケーション固有のレコードセット クラスを派生させることもできます。 その後、次のことが実行できます。
レコード間のスクロール。
インデックスを設定して、Seek を使用したレコードの高速検索 (テーブル タイプのレコードセットのみ)。
文字列比較に基づいたレコードを検索:「<」、「< =」、=、「> =」、または「>」(ダイナセット タイプとスナップショット タイプのレコード セット)。
レコードの更新と、ロッキング モードの指定 (スナップショット タイプのレコードセットを除く)。
データ ソースで利用できるレコードからどのレコードを選択するかを制限するためのレコードセットのフィルター。
レコードセットの並べ替え。
レコードセットをパラメーター化し、実行時までは不明な情報を使用して選択をカスタマイズします。
CDaoRecordset クラスには、CRecordset クラスと同じインターフェイスが用意されています。 CDaoRecordset クラスは、OLE をベースとした DAO (データ アクセス オブジェクト) を使用してデータベースにアクセスする点が違います。 CRecordset クラスは、オープン データ コネクティビティ (ODBC) と、その DBMS の ODBC ドライバーを使用して、DBMS にアクセスします。
注意
DAO データベース クラスは、オープン データベース コネクティビティ (ODBC: Open Database Connectivity) に基づいている MFC データベース クラスとは性質が異なります。 すべての DAO データベース クラス名には、"CDao" というプリフィックスが付きます。 以前のように、DAO クラスを使用して、ODBC データ ソースにアクセスすることもできます。DAO クラスは Microsoft Jet データベース エンジン固有のクラスであるため、一般により充実した機能を提供できます。
CDaoRecordset を直接使用することも、CDaoRecordset からクラスを派生させることもできます。 どちらの場合も、レコードセット クラスを使用するには、データベースを開き、CDaoDatabase オブジェクトのポインターをコンストラクターに渡して、レコードセット オブジェクトを構築します。 CDaoRecordset オブジェクトを構築し、MFC に一時的な CDaoDatabase オブジェクトを作成させることもできます。 その後、オブジェクトが、テーブル タイプのレコードセット、ダイナセット タイプのレコードセット、スナップショット タイプのレコードセットのどれかを指定して、レコードセットの Open メンバー関数を呼び出します。 Open の呼び出しにより、データベースからデータが選択され、最初のレコードが取り出されます。
レコード間のスクロールやレコードの操作を行うには、オブジェクトのメンバー関数とデータ メンバーを使用します。 ある操作が利用できるかどうかは、オブジェクトがテーブル タイプのレコードセット、ダイナセット タイプのレコードセット、スナップショット タイプのレコードセットのどれであるか、およびオブジェクトが更新できるか、読み取り専用かどうかによります。さらに、データベースまたは ODBC (Open Database Connectivity) データ ソースの機能によって異なります。 Open 関数を呼び出した後の変更や追加を再表示するには Requery メンバー関数を呼び出します。 レコードセットを使用した作業を終了するときはオブジェクトの Close メンバー関数を呼び出し、オブジェクトを破棄します。
CDaoRecordset は、CDaoRecordset または CDaoRecordset の派生クラスのタイプセーフな C++ メンバーを使用してレコード フィールドの読み込みや更新をサポートするために、DAO レコード フィールド エクスチェンジ (DFX: DAO record field exchange) を使用します。 GetFieldValue および SetFieldValue を使用することにより、DFX 機構を使用せずに、データベースの列への動的連結を実装することもできます。
関連情報については、DAO ヘルプの「Recordset Object」を参照してください。
必要条件
**ヘッダー:**afxdao.h