レコード フィールド エクスチェンジ: 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 クラス