记录字段交换:使用 RFX 函数

本主题介绍如何使用构成 DoFieldExchange 替代正文的 RFX 函数调用。

注意

本主题适用于从 CRecordset 派生的类,其中尚未实现批量提取行。 如果使用批量提取行,则将实现批量记录字段交换(批量 RFX)。 批量 RFX 与 RFX 类似。 若要了解区别,请参阅记录集:批量提取记录 (ODBC)

RFX 全局函数在数据源的列和记录集中的字段数据成员之间交换数据。 在记录集的 DoFieldExchange 成员函数中写入 RFX 函数调用。 本主题简要介绍函数,显示 RFX 函数可用的数据类型。 技术说明 43 介绍了如何为其他数据类型写入你的 RFX 函数。

RFX 函数语法

每个 RFX 函数采用三个参数(并且有些函数采用可选的第四个或第五个参数):

  • 指向 CFieldExchange 对象的指针。 只需传递已传递给 DoFieldExchangepFX 指针。

  • 出现在数据源上的列的名称。

  • 记录集类中相应字段数据成员或参数数据成员的名称。

  • (可选)在某些函数中,传输的字符串或数组的最大长度。 该长度默认为 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 类