Record Field Exchange Functions
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

Record Field Exchange Functions

This topic lists the Record Field Exchange (RFX, Bulk RFX, and DFX) functions used to automate the transfer of data between a recordset object and its data source and to perform other operations on the data.

If you are using the ODBC-based classes and you have implemented bulk row fetching, you must manually override the DoBulkFieldExchange member function of CRecordset by calling the Bulk RFX functions for each data member corresponding to a data source column.

If you have not implemented bulk row fetching in the ODBC-based classes, or if you are using the DAO-based classes, then ClassWizard will override the DoFieldExchange member function of CRecordset or CDaoRecordset by calling the RFX functions (for ODBC classes) or the DFX functions (for DAO classes) for each field data member in your recordset.

The record field exchange functions transfer data each time the framework calls DoFieldExchange or DoBulkFieldExchange. Each function transfers a specific data type.

For more information about how these functions are used, see the articles Record Field Exchange: How RFX Works (ODBC) and DAO Record Field Exchange: How DFX Works. For more information about bulk row fetching, see the article Recordset: Fetching Records in Bulk (ODBC).

For columns of data that you bind dynamically, you can also call the RFX or DFX functions yourself, as explained in the articles Recordset: Dynamically Binding Data Columns (ODBC) and DAO: Binding Records Dynamically. Note that dynamic binding in DAO is different from dynamic binding in ODBC. Additionally, you can write your own custom RFX or DFX routines, as explained in Technical Note 43 (for ODBC) and Technical Note 53 (for DAO).

For an example of RFX and Bulk RFX functions as they appear in the DoFieldExchange and DoBulkFieldExchange functions, see RFX_Text and RFX_Text_Bulk. DFX functions are very similar to the RFX functions.

RFX Functions (ODBC)

RFX_Binary Transfers arrays of bytes of type CByteArray.
RFX_Bool Transfers Boolean data.
RFX_Byte Transfers a single byte of data.
RFX_Date Transfers time and date data using CTime or TIMESTAMP_STRUCT.
RFX_Double Transfers double-precision float data.
RFX_Int Transfers integer data.
RFX_Long Transfers long integer data.
RFX_LongBinary Transfers binary large object (BLOB) data with an object of the CLongBinary class.
RFX_Single Transfers float data.
RFX_Text Transfers string data.

Bulk RFX Functions (ODBC)

RFX_Binary_Bulk Transfers arrays of byte data.
RFX_Bool_Bulk Transfers arrays of Boolean data.
RFX_Byte_Bulk Transfers arrays of single bytes.
RFX_Date_Bulk Transfers arrays of data of type TIMESTAMP_STRUCT.
RFX_Double_Bulk Transfers arrays of double-precision, floating-point data.
RFX_Int_Bulk Transfers arrays of integer data.
RFX_Long_Bulk Transfers arrays of long integer data.
RFX_Single_Bulk Transfers arrays of floating-point data.
RFX_Text_Bulk Transfers arrays of data of type LPSTR.

DFX Functions (DAO)

DFX_Binary Transfers arrays of bytes of type CByteArray.
DFX_Bool Transfers Boolean data.
DFX_Byte Transfers a single byte of data.
DFX_Currency Transfers currency data, of type COleCurrency.
DFX_DateTime Transfers time and date data, of type COleDateTime.
DFX_Double Transfers double-precision float data.
DFX_Long Transfers long integer data.
DFX_LongBinary Transfers binary large object (BLOB) data with an object of the CLongBinary class. For DAO, it is recommended that you use DFX_Binary instead.
DFX_Short Transfers short integer data.
DFX_Single Transfers float data.
DFX_Text Transfers string data.

See Also

MFC Macros and Globals | CRecordset::DoFieldExchange | CRecordset::DoBulkFieldExchange | CDaoRecordset::DoFieldExchange

© 2015 Microsoft