次の方法で共有


CDaoRecordset クラス

更新 : 2007 年 11 月

データ ソースから選択された 1 組のレコードセットを表現します。

class CDaoRecordset : public CObject

解説

CDaoRecordset オブジェクトは、一般的に "レコードセット" と呼ばれ、次の 3 つのフォームで使用できます。

  • テーブル タイプのレコードセットは、1 つのデータベース テーブルのレコードのチェック検証、追加、変更、および削除を行うために使用できるベース テーブルを表します。

  • ダイナセット タイプのレコードセットは、更新できるレコードを持つクエリの結果です。これらのレコードセットは、基になるデータベース テーブルのレコードのチェック、追加、変更、および削除を行うために使用できるレコードの集約です。ダイナセット タイプのレコードセットは、データベースの 1 つ以上のテーブルのフィールドを持つことができます。

  • スナップショット タイプのレコードセットは、データの検索、レポートの生成などに使用できるレコードの集約の静的コピーです。これらのレコードセットは、データベースの 1 つ以上のテーブルのフィールドを持つことができますが、更新はできません。

どの形式のレコードセットも、レコードセットが開かれたときに固定されるレコードの集約を表します。テーブル タイプのレコードセット、またはダイナセット タイプのレコードセットでレコードにスクロールすると、レコードセットが開かれた後に、ほかのユーザー、またはアプリケーションのほかのレコードセットのどちらかにより行われた変更を反映します。スナップショット タイプのレコードセットは、更新できません。CDaoRecordset を直接使用することも、CDaoRecordset からアプリケーション固有のレコードセット クラスを派生させることもできます。その後、次のことが実行できます。

  • レコード間のスクロール。

  • インデックスを設定して、Seek を使用したレコードの高速検索 (テーブル タイプのレコードセットのみ)。

  • "<"、"<="、"="、"> ="、または ">" を使用した文字列の比較によるレコードの検索 (ダイナセット タイプとスナップショット タイプ)。

  • レコードの更新と、ロッキング モードの指定 (スナップショット タイプのレコードセットを除く)。

  • データ ソースで利用できるレコードからどのレコードを選択するかを制限するためのレコードセットのフィルタ。

  • レコードセットの並べ替え。

  • レコードセットをパラメータ化し、実行時までは不明な情報を使用して選択をカスタマイズします。

CDaoRecordset クラスには、CRecordset クラスと同じインターフェイスが用意されています。CDaoRecordset クラスは、OLE をベースとした DAO (データ アクセス オブジェクト) を使用してデータベースにアクセスする点が違います。CRecordset クラスは、オープン データ コネクティビティ (ODBC) と、その DBMS の ODBC ドライバを使用して、DBMS にアクセスします。

8wht5w3w.alert_note(ja-jp,VS.90).gifメモ :

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

参照

参照

CObject クラス

階層図

CDaoTableDef クラス

CDaoWorkspace クラス

CDaoDatabase クラス

CDaoQueryDef クラス

その他の技術情報

CDaoRecordset のメンバ