记录字段交换:使用 RFX 函数
本主题介绍如何使用构成 DoFieldExchange
替代正文的 RFX 函数调用。
注意
本主题适用于从 CRecordset 派生的类,其中尚未实现批量提取行。 如果使用批量提取行,则将实现批量记录字段交换(批量 RFX)。 批量 RFX 与 RFX 类似。 若要了解区别,请参阅记录集:批量提取记录 (ODBC)。
RFX 全局函数在数据源的列和记录集中的字段数据成员之间交换数据。 在记录集的 DoFieldExchange 成员函数中写入 RFX 函数调用。 本主题简要介绍函数,显示 RFX 函数可用的数据类型。 技术说明 43 介绍了如何为其他数据类型写入你的 RFX 函数。
RFX 函数语法
每个 RFX 函数采用三个参数(并且有些函数采用可选的第四个或第五个参数):
指向 CFieldExchange 对象的指针。 只需传递已传递给
DoFieldExchange
的pFX
指针。出现在数据源上的列的名称。
记录集类中相应字段数据成员或参数数据成员的名称。
(可选)在某些函数中,传输的字符串或数组的最大长度。 该长度默认为 255 字节,但你可能希望更改它。 最大大小基于
CString
对象的最大大小(INT_MAX (2,147,483,647) 字节),但你可能会在该大小之前遇到驱动程序限制。(可选)在
RFX_Text
函数中,有时需要使用第五个参数指定列的数据类型。
有关详细信息,请参阅“类库参考”中宏和全局下的 RFX 函数。 有关何时可以特别使用参数的示例,请参阅记录集:获取 SUM 和其他聚合结果 (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 |
有关详细信息,请参阅“类库参考”中宏和全局下的 RFX 函数文档。 有关 C++ 数据类型如何映射到 SQL 数据类型的信息,请参阅 SQL:SQL 和 C++数据类型 (ODBC) 中的表“映射到 C++ 数据类型的 ANSI SQL 数据类型”。
另请参阅
记录字段交换 (RFX)
记录字段交换:RFX 的工作方式
记录集:参数化记录集 (ODBC)
记录集:动态绑定数据列 (ODBC)
CRecordset 类
CFieldExchange 类