|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_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.|
|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_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.|