レコード フィールド エクスチェンジ: RFX の使い方
このトピックでは、フレームワークの動作に関連した RFX の使用方法について説明します。
[!メモ]
このトピックの内容は、バルク行フェッチが実装されていない CRecordset の派生クラスを対象にしています。バルク行フェッチを使用している場合は、バルク レコード フィールド エクスチェンジ (Bulk RFX: Bulk Record Field Exchange) が実装されています。Bulk RFX と RFX は似ています。両者の差異については、「レコードセット : バルク行フェッチ (ODBC)」を参照してください。
関連情報については、次のトピックを参照してください。
「レコード フィールド エクスチェンジ : ウィザード コードの操作」では、RFX の概要、MFC のアプリケーション ウィザードと クラスの追加 (「MFC ODBC コンシューマーの追加」を参照) が RFX をサポートするために生成するコードの説明、およびウィザードのコードを更新する方法を説明します。
「レコード フィールド エクスチェンジ : RFX 関数の使い方」では、オーバーライド関数 DoFieldExchange の中から RFX 関数を呼び出す方法について説明します。
次の表に、フレームワークが行う処理とプログラマが行う作業を示します。
RFX の使い方とフレームワークの動作
プログラマの役割 |
フレームワークの役割 |
---|---|
ウィザードを使って、レコードセット クラスを宣言します。フィールド データ メンバーの名前とデータ型を指定します。 |
ウィザードは、CRecordset クラスを派生し、オーバーライド関数 DoFieldExchange を作成します。オーバーライド関数 DoFieldExchange の中で、フィールド データ メンバーごとに RFX 関数が呼び出されます。 |
(省略可能) 必要なパラメーター データ メンバーをクラスに手動で追加します。パラメーター データ メンバーごとに、RFX 関数呼び出しを手作業で DoFieldExchange に追加します。パラメーターのグループに対しては、CFieldExchange::SetFieldType への呼び出しを追加し、パラメーターの総数を m_nParams で指定します。「レコードセット : パラメーターを利用したレコードセット (ODBC)」を参照してください。 |
|
(省略可能) テーブル列とフィールド データ メンバーを直接 (ウィザードを使わずに) 結び付けて、m_nFields の値を増やします。「レコードセット : データ列を動的に結び付ける方法 (ODBC)」を参照してください。 |
|
レコードセット クラスのオブジェクトを構築します。パラメーター データ メンバーがあるときは、オブジェクトを使用する前にその値を設定します。 |
処理を効率化するため、フレームワークでは ODBC を使ってあらかじめパラメーターをデータ ソースに結び付けておきます。パラメーターの値が与えられると、フレームワークはその値をデータ ソースに渡します。並べ替え/フィルター文字列を変更しない限り、クエリの再実行時にはパラメーター値だけが送られます。 |
CRecordset::Open を使ってレコードセット オブジェクトを開きます。 |
レコードセットのクエリを実行し、列をレコードセットのフィールド データ メンバーに結び付けます。DoFieldExchange を呼び出して、最初に選択されたレコードとレコードセットのフィールド データ メンバー間でデータを交換します。 |
CRecordset::Move、メニュー コマンドまたはツール バー コマンドを使ってレコードセットをスクロールします。 |
DoFieldExchange を呼び出して、新しい現在のレコードから、フィールド データ メンバーにデータを転送します。 |
レコードを追加、更新、または削除します。 |
DoFieldExchange を呼び出して、データ ソースへデータを転送します。 |