CRecordset::DoFieldExchange

virtual void DoFieldExchange( CFieldExchange* pFX );
  throw( CDBException );

参数:
pFX是一个指向CFielsExchange对象的指针。框架已经为字段交换操作设置了这个对象来指定一个环境。

说明:
当还没有实现成组行读取时,框架调用这个成员函数来在记录集的字段数据成员和数据源的当前记录的相应列之间自动进行数据交换。DoFieldExchange还将应用程序的参数数据成员(如果有的话)与记录集选择的SQL语句字符串中的参数占位符绑定。
如果已经实现了成组行读取,则框架调用DoBulkFieldExchange。为了实现成组行读取,你必须指定Open成员函数中的dwOptions的CRecordset::useMultiRowFetch选项。
注意:
只有在你正使用一个从CRecordset派生来的类时DoBulkFieldExchange才是有效的。如果你已经直接从CRecordset创建了一个记录集对象,你必须调用GetFieldValue成员函数来检取数据。字段数据的交换,被称为记录字段交换(RFX),可以双向工作:从记录集对象的字段数据成员到数据源的记录的字段,或者从数据源中的记录到记录集对象。
应用程序为实现应用程序派生记录集类的DoFieldExchange函数,一般必须执行的唯一动作是用ClassWizard创建此派生记录集类,并指定字段数据成员的名字和数据类型。应用程序也可以增加代码到ClassWizard编写的代码中,以指定参数数据成员或处理应用程序动态连接的任何列。
当你用ClassWizard声明你的记录集类的时候,该向导会为你重载DoFieldExchange,这类似于下面的例子:
void CCustSet::DoFieldExchange(CFieldExchange* pFX)
{
  //{{AFX_FIELD_MAP(CCustSet)
  pFX->SetFieldType(CFieldExchange::outputColumn);
  RFX_Text(pFX, "Name", m_strName);
  RFX_Int(pFX, "Age", m_wAge);
  //}}AFX_FIELD_MAP
}
要获取更多有关RFX函数的信息,请参见“Visual C++联机文档”中的文章“记录字段交换:RFX是如何工作的”。

请参阅:
CRecordset::m_nFields, CRecordset::m_nParams, CRecordset::DoBulkFieldExchange, CRecordset::GetFieldValue, CFieldExchange, Record Field Exchange Functions