次の方法で共有


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

このトピックでは、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++ データ型の対応」を参照してください。

参照

参照

CRecordset クラス

CFieldExchange クラス

概念

レコード フィールド エクスチェンジ (RFX)

レコード フィールド エクスチェンジ: RFX の動作のしくみ

レコードセット: パラメーターを利用したレコードセット (ODBC)

レコードセット: データ列を動的に結びつける方法 (ODBC)