在使用 CRecordset::DoFieldExchange 时,通常会定义一个 DFFX_ 宏,该宏包含字段到成员变量的映射信息。以下是一个简单的示例:
void CMyRecordset::DoFieldExchange(CFieldExchange* pFX)
{
// 定义字段到成员变量的映射
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Text(pFX, _T("[FieldName1]"), m_MemberVariable1);
RFX_Int(pFX, _T("[FieldName2]"), m_MemberVariable2);
// 添加更多的映射...
}
上述示例中,CMyRecordset 是一个派生自 CRecordset 的类,DoFieldExchange 方法中通过 RFX_ 系列宏将数据库字段与类的成员变量进行了映射。RFX_Text 用于字符串字段,RFX_Int 用于整数字段,其他类型的字段有对应的宏。
这种映射关系告诉 MFC 如何将数据库字段的值传递给类的成员变量,或者将类的成员变量的值传递给数据库字段。
请注意,DoFieldExchange 是一个虚拟函数,你需要在你的派生类中进行覆盖以满足你的特定需求。
转载请注明出处:http://www.zyzy.cn/article/detail/21985/MFC/CRecordset