レコード フィールド エクスチェンジ : RFX 関数の使い方
更新 : 2007 年 11 月
このトピックでは、DoFieldExchange オーバーライドの中心部分となる RFX 関数呼び出しの使用方法について説明します。
メモ : |
---|
このトピックの内容は、バルク行フェッチが実装されていない CRecordset の派生クラスを対象にしています。バルク行フェッチを使用している場合は、バルク レコード フィールド エクスチェンジ (Bulk RFX: Bulk Record Field Exchange) が実装されています。Bulk RFX と RFX は似ています。両者の差異については、「レコードセット : バルク行フェッチ (ODBC)」を参照してください。 |
RFX グローバル関数は、データ ソースの列とレコードセットのフィールド データ メンバ間でデータを交換します。レコードセットのメンバ関数 DoFieldExchange に RFX 関数呼び出しコードを作成します。ここでは、RFX 関数の概要と RFX 関数が用意されているデータ型について説明します。新しく定義したデータ型に対する RFX 関数を独自に作成する方法については、「テクニカル ノート 43: RFX ルーチン」で説明されています。
RFX 関数の構文
各 RFX 関数は、次の 3 つのパラメータを使用します (これ以外に 1 個または 2 個のオプション パラメータを使用する関数もあります)。
CFieldExchange オブジェクトへのポインタを返します。DoFieldExchange に渡された pFX ポインタをそのまま渡します。
データ ソース中の列名。
レコードセット クラス内の対応するフィールド データ メンバまたはパラメータ データ メンバの名前。
転送する文字列または配列の最大長を指定できる関数もあります。既定値は 255 バイトですが、必要に応じて変更できます。最大値は、CString オブジェクトの最大値である INT_MAX (2,147,483,647 バイト) ですが、通常はそれ以前にドライバの限界に達します。
RFX_Text 関数では、列のデータ型を指定する第 5 パラメータを取る場合もあります。
詳細については、『MFC リファレンス』の「マクロ、グローバル関数、およびグローバル変数」で各 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 |
詳細については、『MFC リファレンス』の「マクロ、グローバル関数、およびグローバル変数」で各 RFX 関数の解説を参照してください。C++ のデータ型の SQL のデータ型への対応については、「SQL : SQL と C++ のデータ型 (ODBC)」の表「ANSI SQL データ型と C++ データ型の対応」を参照してください。
参照
概念
レコード フィールド エクスチェンジ : RFX の動作のしくみ
レコードセット : パラメータを利用したレコードセット (ODBC)
レコードセット : データ列を動的に結びつける方法 (ODBC)