次の方法で共有


レコード フィールド エクスチェンジ: RFX 関数の使い方

このトピックでは、DoFieldExchange オーバーライドの本体を構成する RFX 関数呼び出しの使用方法について説明します。

Note

このトピックの内容は、バルク行フェッチが実装されていない CRecordset から派生したクラスを対象にしています。 バルク行フェッチを使用している場合は、バルク レコード フィールド エクスチェンジ (Bulk RFX) が実装されます。 Bulk RFX は、RFX に似ています。 違いを理解するには、「レコードセット: バルク行フェッチ (ODBC)」を参照してください。

RFX グローバル関数は、データ ソースの列とレコードセットのフィールド データ メンバーの間でデータを交換します。 RFX 関数呼び出しをレコードセットの DoFieldExchange メンバー関数に記述します。 このトピックでは、関数について簡単に説明し、RFX 関数を使用できるデータ型について説明します。 テクニカル ノート 43 は、追加のデータ型用に独自の RFX 関数を記述する方法について説明します。

RFX 関数の構文

各 RFX 関数は、3 つのパラメーター (およびオプションで 4 番目または 5 番目のパラメーター) を受け取ります。

  • CFieldExchange オブジェクトへのポインター。 DoFieldExchange に渡された pFX ポインターを渡すだけです。

  • データ ソースに表示される列の名前。

  • レコードセット クラスの対応するフィールド データ メンバーまたはパラメーター データ メンバーの名前。

  • (オプション) 一部の関数では、転送される文字列または配列の最大長。 既定値は 255 バイトですが、変更することもできます。 最大サイズは、CString オブジェクトの最大サイズ — INT_MAX (2,147,483,647) バイトに基づいていますが、そのサイズより前にドライバーの制限が発生する可能性があります。

  • (オプション) RFX_Text 関数では、5 番目のパラメーターを使用して列のデータ型を指定することもできます。

詳細については、"クラス ライブラリ リファレンス"の「マクロとグローバル」の下にある RFX 関数を参照してください。 パラメーターを特別に使用する場合の例については、「レコードセット: 合計およびその他の集計結果の取得 (ODBC) 」を参照してください。

RFX データ型

クラス ライブラリには、データ ソースとレコードセットの間でさまざまなデータ型を転送するための RFX 関数が用意されています。 次の一覧は、RFX 関数をデータ型別にまとめたものです。 独自の RFX 関数呼び出しを記述する必要がある場合は、データ型を使ってこれらの関数から選択します。

機能 データの種類
RFX_Bool BOOL
RFX_Byte BYTE
RFX_Binary CByteArray
RFX_Double double
RFX_Single float
RFX_Int int
RFX_Long long
RFX_LongBinary CLongBinary
RFX_Text CString
RFX_Date CTime

詳細については、"クラス ライブラリ リファレンス"の「マクロとグローバル」の下にある RFX 関数のドキュメントを参照してください。 C++ データ型が SQL データ型にどのようにマップされるかについては、「SQL: SQL および C++ データ型 (ODBC)」の「C++ データ型にマップされた ANSI SQL データ型」の表を参照してください。

関連項目

レコード フィールド エクスチェンジ (RFX)
レコード フィールド エクスチェンジ: RFX の動作のしくみ
レコードセット: パラメーターを利用したレコードセット (ODBC)
レコードセット: データ列を動的に結びつける方法 (ODBC)
CRecordset クラス
CFieldExchange クラス