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

ここでは、レコードセット オブジェクトとそのデータ ソース間のデータ転送を自動化したり、データに対してその他の操作を実行したりするためのレコード フィールド エクスチェンジの関数 (RFX、 バルク RFX、および DFX) の一覧を示します。

ODBC ベースのクラスを使用し、バルク行フェッチを実装している場合は、データ ソース列に対応する各データ メンバーに対してバルク RFX 関数を呼び出すことによって、 DoBulkFieldExchangeCRecordset メンバー関数を手動でオーバーライドする必要があります。

ODBC ベースのクラスで一括行フェッチを実装していない場合、または DAO ベースのクラス (廃止) を使用している場合、ClassWizard は、レコードセット内の各フィールド データ メンバーの CDaoRecordsetCRecordset RFX 関数 (ODBC クラスの場合) または DFX 関数 (DAO クラスの場合) のメンバー関数をオーバーライドDoFieldExchangeします。

レコード フィールド エクスチェンジ関数は、フレームワークが DoFieldExchange または DoBulkFieldExchangeを呼び出すたびにデータを転送します。 それぞれの関数が特定のデータ型を転送します。

これらの関数の使い方の詳細については、「 レコード フィールド エクスチェンジ: RFX のしくみ (ODBC)」を参照してください。 バルク行フェッチの詳細については、「 レコードセット: バルク行フェッチ (ODBC)」を参照してください。

動的にバインドするデータの列では、RFX 関数または DFX 関数を手動で呼び出すこともできます。詳細については、「 レコードセット: データ列を動的に結びつける方法 (ODBC)」を参照してください。 また、独自のカスタム RFX ルーチンまたは DFX ルーチンを記述することもできます。詳細については、テクニカル ノート 43 (ODBC の場合) およびテクニカル ノート 53 (DAO の場合) を参照してください。

RFX 関数と一括 RFX 関数DoFieldExchangeの例については、RFX_Textおよび DoBulkFieldExchange [RFX_Text_Bulk]#rfx_text_bulk) を参照してください。 DFX 関数は RFX 関数によく似ています。

RFX 関数 (ODBC)

名前 説明
RFX_Binary CByteArray型のバイト配列を転送します。
RFX_Bool ブール型のデータを転送します。
RFX_Byte シングル バイトのデータを転送します。
RFX_Date CTime または TIMESTAMP_STRUCT を使用して、時刻と日付のデータを転送します。
RFX_Double 倍精度浮動小数点型のデータを転送します。
RFX_Int 整数型のデータを転送します。
RFX_Long 長整数型のデータを転送します。
RFX_LongBinary CLongBinary クラスのオブジェクトを使用して、バイナリ ラージ オブジェクト (BLOB) データを転送します。
RFX_Single 浮動小数点型のデータを転送します。
RFX_Text 文字列型のデータを転送します。

バルク RFX 関数 (ODBC)

名前 説明
RFX_Binary_Bulk バイト データの配列を転送します。
RFX_Bool_Bulk ブール型のデータの配列を転送します。
RFX_Byte_Bulk シングル バイトの配列を転送します。
RFX_Date_Bulk TIMESTAMP_STRUCT型のデータの配列を転送します。
RFX_Double_Bulk 倍精度浮動小数点型のデータの配列を転送します。
RFX_Int_Bulk 整数型のデータの配列を転送します。
RFX_Long_Bulk 長整数型のデータの配列を転送します。
RFX_Single_Bulk 浮動小数点型のデータの配列を転送します。
RFX_Text_Bulk LPSTR型のデータの配列を転送します。

DFX 関数 (DAO)

名前 説明
DFX_Binary CByteArray型のバイト配列を転送します。
DFX_Bool ブール型のデータを転送します。
DFX_Byte シングル バイトのデータを転送します。
DFX_Currency COleCurrency型の通貨データを転送します。
DFX_DateTime COleDateTime型の時刻と日付データを転送します。
DFX_Double 倍精度浮動小数点型のデータを転送します。
DFX_Long 長整数型のデータを転送します。
DFX_LongBinary CLongBinary クラスのオブジェクトを使用して、バイナリ ラージ オブジェクト (BLOB) データを転送します。 DAO の場合は、代わりに DFX_Binary を使用することをお勧めします。
DFX_Short 短整数型のデータを転送します。
DFX_Single 浮動小数点型のデータを転送します。
DFX_Text 文字列型のデータを転送します。

=============================================

RFX_Binary

オブジェクトのフィールド データ メンバー CRecordset と ODBC 型SQL_BINARY、SQL_VARBINARY、またはSQL_LONGVARBINARYのデータ ソース上のレコードの列の間でバイト配列を転送します。

構文

void RFX_Binary(
   CFieldExchange* pFX,
   const char* szName,
   CByteArray& value,
   int nMaxLength = 255);

パラメーター

Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchangeの詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送では、CByteArrayの値が指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

nMaxLength
転送される文字列または配列の最大許容長。 nMaxLength既定値は 255 です。 有効な値は 1 ~ INT_MAXです。 フレームワークは、この量の領域をデータに割り当てます。 最適なパフォーマンスを得るために、予想される最大のデータ項目に対応するのに十分な大きさの値を渡します。

解説

これらの型のデータ ソース内のデータは、レコードセット内の型 CByteArray との間でマップされます。

RFX_Textを参照してください

必要条件

ヘッダー: afxdb.h

RFX_Bool

オブジェクトのフィールド データ メンバーと ODBC 型SQL_BIT CRecordset のデータ ソース上のレコードの列の間でブールデータを転送します。

構文

void RFX_Bool(
   CFieldExchange* pFX,
   const char* szName,
   BOOL& value);

パラメーター

Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchangeの詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、BOOL 型の値は、指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

RFX_Textを参照してください

必要条件

ヘッダー: afxdb.h

RFX_Byte

オブジェクトのフィールド データ メンバーと ODBC 型の CRecordset データ ソース上のレコードの列の間で 1 バイトSQL_TINYINT転送します。

構文

void RFX_Byte(
   CFieldExchange* pFX,
   const char* szName,
   BYTE& value);

パラメーター

Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchangeの詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送では、BYTE 型の値が指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

RFX_Textを参照してください

必要条件

ヘッダー: afxdb.h

RFX_Date

オブジェクトのフィールド データ メンバーCRecordsetと、ODBC 型SQL_DATE、SQL_TIME、またはSQL_TIMESTAMPのデータ ソース上のレコードの列の間でデータを転送CTimeまたはTIMESTAMP_STRUCTします。

構文

void RFX_Date(
   CFieldExchange* pFX,
   const char* szName,
   CTime& value);

void RFX_Date(
   CFieldExchange* pFX,
   const char* szName,
   TIMESTAMP_STRUCT& value);

void RFX_Date(
   CFieldExchange* pFX,
   const char* szName,
   COleDateTime& value);

パラメーター

Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchangeの詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

value
指定されたデータ メンバーに格納されている値。転送する値。 関数のさまざまなバージョンでは、値に対して異なるデータ型が使用されます。

関数の最初のバージョンは、CTime オブジェクトへの参照を受け取ります。 レコードセットからデータ ソースへの転送の場合、この値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

関数の 2 番目のバージョンは、構造体への参照を TIMESTAMP_STRUCT 受け取ります。 この構造体は、呼び出しの前に自分で設定する必要があります。 このバージョンでは、ダイアログ データ交換 (DDX) のサポートもコード ウィザードのサポートも使用できません。 3 番目のバージョンの関数は、COleDateTime オブジェクトへの参照を受け取る点を除き、最初のバージョンと同様に動作します。

解説

この関数のバージョンでは CTime 、中間処理のオーバーヘッドが発生し、範囲がやや限られています。 これらの要因のいずれかが制限されすぎる場合は、2 番目のバージョンの関数を使用します。 ただし、コード ウィザードと DDX サポートの欠如と、自分で構造を設定する必要があることに注意してください。

RFX_Textを参照してください

必要条件

ヘッダー: afxdb.h

RFX_Double

オブジェクトのフィールド データ メンバーと ODBC 型SQL_DOUBLECRecordsetのデータ ソース上のレコードの列の間で、二重浮動小数点データを転送します。

構文

void RFX_Double(
   CFieldExchange* pFX,
   const char* szName,
   double& value);

パラメーター

Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchangeの詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 doubleの値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

RFX_Textを参照してください

必要条件

ヘッダー: afxdb.h

RFX_Int

オブジェクトのフィールド データ メンバーと ODBC 型の CRecordset データ ソース上のレコードの列の間で整数データを転送SQL_SMALLINT。

構文

void RFX_Int(
   CFieldExchange* pFX,
   const char* szName,
   int& value);

パラメーター

Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchangeの詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 intの値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

RFX_Textを参照してください

必要条件

ヘッダー: afxdb.h

RFX_Long

オブジェクトのフィールド データ メンバーと ODBC 型のデータ ソース上の CRecordset レコードの列の間で、長整数データSQL_INTEGER転送します。

構文

void RFX_Long(
   CFieldExchange* pFX,
   const char* szName,
   LONG&
value );

パラメーター

Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchangeの詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 longの値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

RFX_Textを参照してください

必要条件

ヘッダー: afxdb.h

RFX_LongBinary

CLongBinary クラスを使用してバイナリ ラージ オブジェクト (BLOB) データを、オブジェクトのフィールド データ メンバーと ODBC 型のCRecordsetデータ ソース上のレコードの列の間でSQL_LONGVARBINARYまたはSQL_LONGVARCHAR転送します。

構文

void RFX_LongBinary(
   CFieldExchange* pFX,
   const char* szName,
   CLongBinary& value);

パラメーター

Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchangeの詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 CLongBinaryの値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

RFX_Textを参照してください

必要条件

ヘッダー: afxdb.h

RFX_Single

オブジェクトのフィールド データ メンバーと ODBC 型SQL_REAL CRecordset のデータ ソース上のレコードの列の間で浮動小数点データを転送します。

構文

void RFX_Single(
   CFieldExchange* pFX,
   const char* szName,
   float& value);

パラメーター

Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchangeの詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 floatの値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

RFX_Textを参照してください

必要条件

ヘッダー: afxdb.h

RFX_Text

オブジェクトのフィールド データ メンバーと、ODBC 型SQL_LONGVARCHARCRecordset、SQL_CHAR、SQL_VARCHAR、SQL_DECIMAL、またはSQL_NUMERICのデータ ソース上のレコードの列の間でデータを転送CStringします。

構文

void RFX_Text(
   CFieldExchange* pFX,
   const char* szName,
   CString& value,
   int nMaxLength = 255,
   int nColumnType = SQL_VARCHAR,
   short nScale = 0);

パラメーター

Pfx
クラス CFieldExchangeのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchangeの詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 CStringの値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

nMaxLength
転送される文字列または配列の最大許容長。 nMaxLength既定値は 255 です。 有効な値は 1 ~ INT_MAX) です。 フレームワークは、この量の領域をデータに割り当てます。 最適なパフォーマンスを得るために、予想される最大のデータ項目に対応するのに十分な大きさの値を渡します。

nColumnType
パラメーターメインに使用されます。 パラメーターのデータ型を示す整数。 この型は、フォーム SQL_XXXの ODBC データ型です。

nScale
ODBC 型のSQL_DECIMALまたはSQL_NUMERICの値のスケールを指定します。 nScale は、パラメーター値を設定する場合にのみ役立ちます。 詳細については、ODBC SDK プログラマ リファレンスの付録 D の「有効桁数、小数点以下桁数、長さ、および表示サイズ」を参照してください

解説

これらのすべての型のデータ ソース内のデータは、レコードセットとの間でマップされます CString

この例では、次のいくつかの呼び出しを RFX_Text示します。 また、2 つの呼び出しに注意してください CFieldExchange::SetFieldType。 パラメーターの場合は、呼び出しとその RFX 呼び出しを記述する SetFieldType 必要があります。 出力列の呼び出しとそれに関連付けられている RFX 呼び出しは、通常、コード ウィザードによって記述されます。

void CCustomer::DoFieldExchange(CFieldExchange* pFX)
{
   pFX->SetFieldType(CFieldExchange::outputColumn);
   // Macros such as RFX_Text() and RFX_Int() are dependent on the
   // type of the member variable, not the type of the field in the database.
   // ODBC will try to automatically convert the column value to the requested type
   RFX_Long(pFX, _T("[CustomerID]"), m_CustomerID);
   RFX_Text(pFX, _T("[ContactFirstName]"), m_ContactFirstName);
   RFX_Text(pFX, _T("[PostalCode]"), m_PostalCode);
   RFX_Text(pFX, _T("[L_Name]"), m_L_Name);
   RFX_Long(pFX, _T("[BillingID]"), m_BillingID);

   pFX->SetFieldType(CFieldExchange::inputParam);
   RFX_Text(pFX, _T("Param"), m_strParam);
}

必要条件

ヘッダー: afxdb.h

RFX_Binary_Bulk

ODBC データ ソースの列から-derived オブジェクト内の対応する配列に、バイト データの複数の行を CRecordset転送します。

構文

void RFX_Binary_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   BYTE** prgByteVals,
   long** prgLengths,
   int nMaxLength);

パラメーター

Pfx
CFieldExchange オブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

prgByteVals
BYTE 値の配列へのポインター。 この配列には、データ ソースからレコードセットに転送されるデータが格納されます。

prgLengths
長整数の配列へのポインター。 この配列は、prgByteVals が指す配列内の各値の長さをバイト単位で 格納します。 対応するデータ項目に Null 値が含まれている場合、SQL_NULL_DATA値が格納されることに注意してください。 詳細については、「ODBC SDK プログラマ リファレンス」の ODBC API 関数 SQLBindCol参照してください

nMaxLength
prgByteVals指す配列に格納される値の最大許容長。 データが切り捨てられないようにするには、予想される最大のデータ項目に対応できる十分な大きさの値を渡します。

解説

データ ソース列には、SQL_BINARY、SQL_VARBINARY、またはSQL_LONGVARBINARYの ODBC 型を指定できます。 レコードセットは、BYTE へのポインター型のフィールド データ メンバーを定義する必要があります。

prgByteVals と prgLengths を NULL に初期化すると、それらが指す配列は、行セット のサイズと同じサイズで自動的に割り当てられます。

Note

一括レコード フィールド交換では、データ ソースからレコードセット オブジェクトにデータのみが転送されます。 レコードセットを更新可能にするには、ODBC API 関数 SQLSetPosを使用する必要があります。

詳細については、「Recordset: Fetching Records in Bulk (ODBC) and Record Field Exchange (RFX)」の記事を参照してください。

RFX_Text_Bulkを参照してください

必要条件

ヘッダー: afxdb.h

RFX_Bool_Bulk

ODBC データ ソースの列から、-derived オブジェクト内の対応する配列に複数行のブールデータを CRecordset転送します。

構文

void RFX_Bool_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   BOOL** prgBoolVals,
   long** prgLengths);

パラメーター

Pfx
CFieldExchange オブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

prgBoolVals
BOOL 値の配列へのポインター。 この配列には、データ ソースからレコードセットに転送されるデータが格納されます。

prgLengths
長整数の配列へのポインター。 この配列は、prgBoolVals が指す配列内の各値の長さをバイト単位で 格納します。 対応するデータ項目に Null 値が含まれている場合、SQL_NULL_DATA値が格納されることに注意してください。 詳細については、「ODBC SDK プログラマ リファレンス」の ODBC API 関数 SQLBindCol参照してください

解説

データ ソース列には、ODBC 型のSQL_BITが必要です。 レコードセットは、BOOL へのポインター型のフィールド データ メンバーを定義する必要があります。

prgBoolVals と prgLengths を NULL に初期化すると、それらが指す配列は、行セット サイズと同じサイズで自動的に割り当てられます。

Note

一括レコード フィールド交換では、データ ソースからレコードセット オブジェクトにデータのみが転送されます。 レコードセットを更新可能にするには、ODBC API 関数 SQLSetPosを使用する必要があります。

詳細については、「Recordset: Fetching Records in Bulk (ODBC) and Record Field Exchange (RFX)」の記事を参照してください。

RFX_Text_Bulkを参照してください

必要条件

ヘッダー: afxdb.h

RFX_Byte_Bulk

ODBC データ ソースの列から-derived オブジェクト内の対応する配列に、1 バイトの複数の行を CRecordset転送します。

構文

void RFX_Byte_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   BYTE** prgByteVals,
   long** prgLengths);

パラメーター

Pfx
CFieldExchange オブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

prgByteVals
BYTE 値の配列へのポインター。 この配列には、データ ソースからレコードセットに転送されるデータが格納されます。

prgLengths
長整数の配列へのポインター。 この配列は、prgByteVals が指す配列内の各値の長さをバイト単位で 格納します。 対応するデータ項目に Null 値が含まれている場合、SQL_NULL_DATA値が格納されることに注意してください。 詳細については、「ODBC SDK プログラマ リファレンス」の ODBC API 関数 SQLBindCol参照してください

解説

データ ソース列には、odbc 型のSQL_TINYINTが必要です。 レコードセットは、BYTE へのポインター型のフィールド データ メンバーを定義する必要があります。

prgByteVals と prgLengths を NULL に初期化すると、それらが指す配列は、行セット のサイズと同じサイズで自動的に割り当てられます。

Note

一括レコード フィールド交換では、データ ソースからレコードセット オブジェクトにデータのみが転送されます。 レコードセットを更新可能にするには、ODBC API 関数 SQLSetPosを使用する必要があります。

詳細については、「Recordset: Fetching Records in Bulk (ODBC) and Record Field Exchange (RFX)」の記事を参照してください。

RFX_Text_Bulkを参照してください

必要条件

ヘッダー: afxdb.h

RFX_Date_Bulk

ODBC データ ソースの列から、TIMESTAMP_STRUCT データの複数の行を、-derived オブジェクト内の対応する配列に CRecordset転送します。

構文

void RFX_Date_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   TIMESTAMP_STRUCT** prgTSVals,
   long** prgLengths);

パラメーター

Pfx
CFieldExchange オブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

prgTSVals
TIMESTAMP_STRUCT値の配列へのポインター。 この配列には、データ ソースからレコードセットに転送されるデータが格納されます。 TIMESTAMP_STRUCTデータ型の詳細については、「ODBC SDK プログラマー リファレンス」の付録 D の「C データ型」を参照してください

prgLengths
長整数の配列へのポインター。 この配列は、prgTSVals が指す配列内の各値の長さをバイト単位で 格納します。 対応するデータ項目に Null 値が含まれている場合、SQL_NULL_DATA値が格納されることに注意してください。 詳細については、「ODBC SDK プログラマ リファレンス」の ODBC API 関数 SQLBindCol参照してください

解説

データ ソース列には、SQL_DATE、SQL_TIME、またはSQL_TIMESTAMPの ODBC 型を指定できます。 レコードセットは、TIMESTAMP_STRUCTへのポインター型のフィールド データ メンバーを定義する必要があります。

prgTSValsprgLengths を NULL に初期化すると、それらが指す配列は、行セット のサイズと同じサイズで自動的に割り当てられます。

Note

一括レコード フィールド交換では、データ ソースからレコードセット オブジェクトにデータのみが転送されます。 レコードセットを更新可能にするには、ODBC API 関数 SQLSetPosを使用する必要があります。

詳細については、「Recordset: Fetching Records in Bulk (ODBC) and Record Field Exchange (RFX)」の記事を参照してください。

RFX_Text_Bulkを参照してください

必要条件

ヘッダー: afxdb.h

RFX_Double_Bulk

ODBC データ ソースの列から-derived オブジェクト内の対応する配列に、倍精度浮動小数点データの複数の行を CRecordset転送します。

構文

void RFX_Double_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   double** prgDblVals,
   long** prgLengths);

パラメーター

Pfx
CFieldExchange オブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

prgDblVals
値の double 配列へのポインター。 この配列には、データ ソースからレコードセットに転送されるデータが格納されます。

prgLengths
長整数の配列へのポインター。 この配列は、prgDblVals が指す配列内の各値の長さをバイト単位で 格納します。 対応するデータ項目に Null 値が含まれている場合、SQL_NULL_DATA値が格納されることに注意してください。 詳細については、「ODBC SDK プログラマ リファレンス」の ODBC API 関数 SQLBindCol参照してください

解説

データ ソース列には、odbc 型のSQL_DOUBLEが必要です。 レコードセットは、ポインター型のフィールド データ メンバーを定義する double必要があります。

prgDblVals と prgLengths を NULL に初期化すると、それらが指す配列は、行セット のサイズと同じサイズで自動的に割り当てられます。

Note

一括レコード フィールド交換では、データ ソースからレコードセット オブジェクトにデータのみが転送されます。 レコードセットを更新可能にするには、ODBC API 関数 SQLSetPosを使用する必要があります。

詳細については、「Recordset: Fetching Records in Bulk (ODBC) and Record Field Exchange (RFX)」の記事を参照してください。

RFX_Text_Bulkを参照してください

必要条件

ヘッダー: afxdb.h

RFX_Int_Bulk

オブジェクトのフィールド データ メンバーと ODBC 型の CRecordset データ ソース上のレコードの列の間で整数データを転送SQL_SMALLINT。

構文

void RFX_Int(
   CFieldExchange* pFX,
   const char* szName,
   int& value);

パラメーター

Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchangeの詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 intの値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

RFX_Textを参照してください

必要条件

ヘッダー: afxdb.h

RFX_Long_Bulk

ODBC データ ソースの列から-derived オブジェクト内の対応する配列に、長整数データの複数の行を CRecordset転送します。

構文

void RFX_Long_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   long** prgLongVals,
   long** prgLengths);

パラメーター

Pfx
CFieldExchange オブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

prgLongVals
長整数の配列へのポインター。 この配列には、データ ソースからレコードセットに転送されるデータが格納されます。

prgLengths
長整数の配列へのポインター。 この配列は、prgLongVals が指す配列内の各値の長さをバイト単位で 格納します。 対応するデータ項目に Null 値が含まれている場合、SQL_NULL_DATA値が格納されることに注意してください。 詳細については、「ODBC SDK プログラマ リファレンス」の ODBC API 関数 SQLBindCol参照してください

解説

データ ソース列には、odbc 型のSQL_INTEGERが必要です。 レコードセットは、ポインター型のフィールド データ メンバーを定義する long必要があります。

prgLongValsprgLengths を NULL に初期化すると、それらが指す配列は、行セット サイズと同じサイズで自動的に割り当てられます。

Note

一括レコード フィールド交換では、データ ソースからレコードセット オブジェクトにデータのみが転送されます。 レコードセットを更新可能にするには、ODBC API 関数 SQLSetPosを使用する必要があります。

詳細については、「Recordset: Fetching Records in Bulk (ODBC) and Record Field Exchange (RFX)」の記事を参照してください。

RFX_Text_Bulkを参照してください

必要条件

ヘッダー: afxdb.h

RFX_Single_Bulk

ODBC データ ソースの列から、-derived オブジェクト内の対応する配列に複数行の浮動小数点データを CRecordset転送します。

構文

void RFX_Single_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   float** prgFltVals,
   long** prgLengths);

パラメーター

Pfx
CFieldExchange オブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

prgFltVals
値の float 配列へのポインター。 この配列には、データ ソースからレコードセットに転送されるデータが格納されます。

prgLengths
長整数の配列へのポインター。 この配列は、prgFltVals が指す配列内の各値の長さをバイト単位で 格納します。 対応するデータ項目に Null 値が含まれている場合、SQL_NULL_DATA値が格納されることに注意してください。 詳細については、「ODBC SDK プログラマ リファレンス」の ODBC API 関数 SQLBindCol参照してください

解説

データ ソース列には、odbc 型のSQL_REALが必要です。 レコードセットは、ポインター型のフィールド データ メンバーを定義する float必要があります。

prgFltVals と prgLengths を NULL に初期化すると、それらが指す配列は、行セット のサイズと同じサイズで自動的に割り当てられます。

Note

一括レコード フィールド交換では、データ ソースからレコードセット オブジェクトにデータのみが転送されます。 レコードセットを更新可能にするには、ODBC API 関数 SQLSetPosを使用する必要があります。

詳細については、「Recordset: Fetching Records in Bulk (ODBC) and Record Field Exchange (RFX)」の記事を参照してください。

RFX_Text_Bulkを参照してください

必要条件

ヘッダー: afxdb.h

RFX_Text_Bulk

ODBC データ ソースの列から、-derived オブジェクト内の対応する配列に複数行の文字データを CRecordset転送します。

構文

void RFX_Text_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   LPSTR* prgStrVals,
   long** prgLengths,
   int nMaxLength);

パラメーター

Pfx
CFieldExchange オブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。

Szname
データ列の名前。

prgStrVals
LPSTR 値の配列へのポインター。 この配列には、データ ソースからレコードセットに転送されるデータが格納されます。 ODBC の現在のバージョンでは、これらの値を Unicode にすることはできません。

prgLengths
長整数の配列へのポインター。 この配列は、prgStrVals が指す配列内の各値の長さをバイト単位で 格納します。 この長さは、null 終了文字を除外します。 対応するデータ項目に Null 値が含まれている場合、SQL_NULL_DATA値が格納されることに注意してください。 詳細については、「ODBC SDK プログラマ リファレンス」の ODBC API 関数 SQLBindCol参照してください

nMaxLength
prgStrVals指す配列に格納されている値の最大許容長 (null 終端文字を含む)。 データが切り捨てられないようにするには、予想される最大のデータ項目に対応できる十分な大きさの値を渡します。

解説

データ ソース列には、SQL_LONGVARCHAR、SQL_CHAR、SQL_VARCHAR、SQL_DECIMAL、またはSQL_NUMERICの ODBC 型を指定できます。 レコードセットは、LPSTR 型のフィールド データ メンバーを定義する必要があります。

prgStrValsprgLengths を NULL に初期化すると、それらが指す配列は、行セット のサイズと同じサイズで自動的に割り当てられます。

Note

一括レコード フィールド交換では、データ ソースからレコードセット オブジェクトにデータのみが転送されます。 レコードセットを更新可能にするには、ODBC API 関数 SQLSetPosを使用する必要があります。

詳細については、「Recordset: Fetching Records in Bulk (ODBC) and Record Field Exchange (RFX)」の記事を参照してください。

オーバーライドで呼び出しを手動で記述する DoBulkFieldExchange 必要があります。 この例では、データ転送の RFX_Text_Bulk呼び出しと呼び出しを RFX_Long_Bulk示します。 これらの呼び出しの前には、CFieldExchange::SetFieldType呼び出しがあります。 パラメーターの場合は、Bulk RFX 関数ではなく RFX 関数を呼び出す必要があることに注意してください。

void CMultiCustomer::DoBulkFieldExchange(CFieldExchange* pFX)
{
   pFX->SetFieldType(CFieldExchange::outputColumn);
   RFX_Long_Bulk(pFX, _T("[CustomerID]"), &m_pCustomerID, &m_pcCustomerID);
   RFX_Text_Bulk(pFX, _T("[ContactFirstName]"), &m_pContactFirstName, &m_pcContactFirstName, 50);
   RFX_Text_Bulk(pFX, _T("[PostalCode]"), &m_pPostalCode, &m_pcPostalCode, 50);
   RFX_Text_Bulk(pFX, _T("[L_Name]"), &m_pL_Name, &m_pcL_Name, 50);
   RFX_Long_Bulk(pFX, _T("[BillingID]"), &m_pBillingID, &m_pcBillingID);

   pFX->SetFieldType(CFieldExchange::inputParam);
   RFX_Text(pFX, _T("Param"), m_strParam);
}

必要条件

ヘッダー: afxdb.h

DFX_Binary

CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間でバイト配列を転送します。

構文

void AFXAPI DFX_Binary(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   CByteArray& value,
   int nPreAllocSize = AFX_DAO_BINARY_DEFAULT_SIZE,
   DWORD dwBindOptions = 0);

パラメーター

Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送では、CByteArrayの値が指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

nPreAllocSize
フレームワークは、この量のメモリを事前に割り当て済みにします。 データが大きい場合、フレームワークは必要に応じてより多くの領域を割り当てられます。 パフォーマンスを向上させるには、このサイズを、再割り当てを防ぐのに十分な大きさの値に設定します。 既定のサイズは AFXDAO で定義されています。AFX_DAO_BINARY_DEFAULT_SIZEとしての H ファイル。

dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定の AFX_DAO_DISABLE_FIELD_CACHE では、二重バッファリングは使用されません。SetFieldDirtySetFieldNull を自分で呼び出す必要があります。 もう 1 つの可能な値AFX_DAO_ENABLE_FIELD_CACHEは、二重バッファリングを使用するため、フィールドを ダーティ または Null にマークするために余分な作業を行う必要はありません。 パフォーマンスとメモリの理由から、バイナリ データが比較的小さい場合を除き、この値は避けてください。

Note

CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、既定ですべてのフィールドに対してデータをダブル バッファリングするかどうかを制御できます。

解説

DAO の型DAO_BYTESとレコードセット内の CByteArrayの間でデータがマップされます。

DFX_Textを参照してください

必要条件

ヘッダー: afxdao.h

DFX_Bool

CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間でブールデータを転送します。

構文

void AFXAPI DFX_Bool(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   BOOL& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

パラメーター

Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、BOOL 型の値は、指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 あなたは自分自身と呼び出 SetFieldDirtySetFieldNull 必要があります。

Note

CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。

解説

DAO の型DAO_BOOLとレコードセットの BOOL 型の間でデータがマップされます。

DFX_Textを参照してください

必要条件

ヘッダー: afxdao.h

DFX_Byte

CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間で 1 バイトを転送します。

構文

void AFXAPI DFX_Byte(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   BYTE& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

パラメーター

Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送では、BYTE 型の値が指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 あなたは自分自身と呼び出 SetFieldDirtySetFieldNull 必要があります。

Note

CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。

解説

DAO の型DAO_BYTESとレコードセットの BYTE 型の間でデータがマップされます。

DFX_Textを参照してください

必要条件

ヘッダー: afxdao.h

DFX_Currency

CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間で通貨データを転送します。

構文

void AFXAPI DFX_Currency(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   COleCurrency& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

パラメーター

Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、この値は COleCurrencyの指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 あなたは自分自身と呼び出 SetFieldDirtySetFieldNull 必要があります。

Note

CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。

解説

DAO の型DAO_CURRENCYとレコードセット内の COleCurrencyの間でデータがマップされます。

DFX_Textを参照してください

必要条件

ヘッダー: afxdao.h

DFX_DateTime

CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間で、時刻と日付のデータを転送します。

構文

void AFXAPI DFX_DateTime(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   COleDateTime& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

パラメーター

Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 この関数は、COleDateTime オブジェクトへの 参照を 受け取ります。 レコードセットからデータ ソースへの転送の場合、この値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 あなたは自分自身と呼び出 SetFieldDirtySetFieldNull 必要があります。

Note

CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。

解説

DAO の型DAO_DATEとレコードセット内の COleDateTimeの間でデータがマップされます。

Note

COleDateTime は、 DAO クラスでこの目的のために CTime とTIMESTAMP_STRUCTを置き換えます。 CTime とTIMESTAMP_STRUCTは、ODBC ベースのデータ アクセス クラスに引き続き使用されます。

DFX_Textを参照してください

必要条件

ヘッダー: afxdao.h

DFX_Double

CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間で、二重浮動小数点データを転送します。

構文

void AFXAPI DFX_Double(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   double& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

パラメーター

Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 doubleの値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 あなたは自分自身と呼び出 SetFieldDirtySetFieldNull 必要があります。

Note

CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。

解説

DAO の型DAO_R8とレコードセット内の double floatの間でデータがマップされます。

DFX_Textを参照してください

必要条件

ヘッダー: afxdao.h

DFX_Long

CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間で、長整数データを転送します。

構文

void AFXAPI DFX_Long(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   long& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

パラメーター

Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 longの値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 あなたは自分自身と呼び出 SetFieldDirtySetFieldNull 必要があります。

Note

CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。

解説

DAO の型DAO_I4とレコードセット内の型の間でデータ long がマップされます。

DFX_Textを参照してください

必要条件

ヘッダー: afxdao.h

DFX_LongBinary

重要: この関数の代わりにDFX_Binaryを使用することをお勧めします。

構文

void AFXAPI DFX_LongBinary(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   CLongBinary& value,
   DWORD dwPreAllocSize = AFX_DAO_LONGBINARY_DEFAULT_SIZE,
   DWORD dwBindOptions = 0);

パラメーター

Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、CLongBinaryの値は、指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

dwPreAllocSize
フレームワークは、この量のメモリを事前に割り当て済みにします。 データが大きい場合、フレームワークは必要に応じてより多くの領域を割り当てられます。 パフォーマンスを向上させるには、このサイズを、再割り当てを防ぐのに十分な大きさの値に設定します。

dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定の AFX_DISABLE_FIELD_CACHE では、二重バッファリングは使用されません。 その他の使用可能な値はAFX_DAO_ENABLE_FIELD_CACHE。 二重バッファリングを使用します。フィールドをダーティまたは Null にマークするために余分な作業を行う必要はありません。 パフォーマンスとメモリの理由から、バイナリ データが比較的小さい場合を除き、この値は避けてください。

Note

CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。

解説

DFX_LongBinary は、MFC ODBC クラスとの互換性のために用意されています。 この関数はDFX_LongBinary、CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間で、クラスCLongBinaryを使用してバイナリ ラージ オブジェクト (BLOB) データを転送します。 DAO の型DAO_BYTESとレコードセット内の CLongBinaryの間でデータがマップされます。

DFX_Textを参照してください

必要条件

ヘッダー: afxdao.h

DFX_Short

CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間で短整数データを転送します。

構文

void AFXAPI DFX_Short(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   short& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

パラメーター

Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 shortの値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 あなたは自分自身と呼び出 SetFieldDirtySetFieldNull 必要があります。

Note

CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。

解説

DAO の型DAO_I2とレコードセット内の型の間でデータ short がマップされます。

Note

DFX_Shortは、ODBC ベースのクラスのRFX_Intと同じです

DFX_Textを参照してください

必要条件

ヘッダー: afxdao.h

DFX_Single

CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間で浮動小数点データを転送します。

構文

void AFXAPI DFX_Single(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   float& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

パラメーター

Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 floatの値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 あなたは自分自身と呼び出 SetFieldDirtySetFieldNull 必要があります。

Note

CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。

解説

DAO の型DAO_R4とレコードセット内の型 float の間でデータがマップされます。

DFX_Textを参照してください

必要条件

ヘッダー: afxdao.h

DFX_Text

CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間でデータを転送CStringします。

構文

void AFXAPI DFX_Text(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   CString& value,
   int nPreAllocSize = AFX_DAO_TEXT_DEFAULT_SIZE,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

パラメーター

Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。

Szname
データ列の名前。

value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、CStringの値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。

nPreAllocSize
フレームワークは、この量のメモリを事前に割り当て済みにします。 データが大きい場合、フレームワークは必要に応じてより多くの領域を割り当てられます。 パフォーマンスを向上させるには、このサイズを、再割り当てを防ぐのに十分な大きさの値に設定します。

dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 SetFieldDirtySetFieldNull を自分で呼び出す必要があります。

Note

CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。

解説

データは DAO の型DAO_CHAR (または、シンボル_UNICODEが定義されている場合はDAO_WCHAR) とレコードセットの CStringの間でマップされます。 n

この例では、次のいくつかの呼び出しを DFX_Text示します。 CDaoFieldExchange::SetFieldType の 2 つの呼び出しにも注意してください。 最初の呼び出しとその DFX 呼び出しを記述するSetFieldType必要があります。 2 番目の呼び出しとそれに関連付けられている DFX 呼び出しは、通常、クラスを生成したコード ウィザードによって記述されます。

void CCustSet::DoFieldExchange(CDaoFieldExchange* pFX)
{
   pFX->SetFieldType(CDaoFieldExchange::param);
   DFX_Text(pFX, _T("Param"), m_strParam);
   pFX->SetFieldType(CDaoFieldExchange::outputColumn);
   DFX_Short(pFX, _T("EmployeeID"), m_EmployeeID);
   DFX_Text(pFX, _T("LastName"), m_LastName);
   DFX_Short(pFX, _T("Age"), m_Age);
   DFX_DateTime(pFX, _T("hire_date"), m_hire_date);
   DFX_DateTime(pFX, _T("termination_date"), m_termination_date);

   CDaoRecordset::DoFieldExchange(pFX);
}

必要条件

ヘッダー: afxdao.h

関連項目

マクロとグローバル
CRecordset::DoFieldExchange
CRecordset::D oBulkFieldExchange
CDaoRecordset::D oFieldExchange