レコード フィールド エクスチェンジ : RFX の使い方
更新 : 2007 年 11 月
このトピックでは、フレームワークの動作に関連した 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 を呼び出して、データ ソースへデータを転送します。 |
参照
概念
レコード フィールド エクスチェンジ : RFX の動作のしくみ