Compartilhar via


CRecordset::DoFieldExchange

Chamado para trocar dados (nas duas direções) entre os membros de dados de campo do conjunto de registros e o registro correspondente na fonte de dados.Implementa registro de troca de campo (RFX).

virtual void DoFieldExchange( 
   CFieldExchange* pFX  
);

Parâmetros

  • pFX
    Um ponteiro para um CFieldExchange objeto.A estrutura será já configurou este objeto para especificar um contexto para a operação de troca de campo.

Comentários

Quando buscar a linha em massa não for implementada, a estrutura chama esta função de membro para trocar dados entre os membros de dados de campo do objeto do conjunto de registros e colunas correspondentes do registro corrente na fonte de dados automaticamente.DoFieldExchange também vincula seus membros de dados do parâmetro, se houver, para espaços reservados de parâmetros na seqüência de caracteres de demonstrativo SQL para a seleção do conjunto de registros.

Se buscar em massa a linha for implementada, a estrutura chama DoBulkFieldExchange.Para implementar a busca de linha em massa, você deve especificar o CRecordset::useMultiRowFetch opção da dwOptions parâmetro na em abertofunção de membro .

Observação:

DoFieldExchange está disponível somente se você estiver usando uma classe derivada de CRecordset. Se você tiver criado um objeto conjunto de registros diretamente de CRecordset, você deve telefonar o GetFieldValuefunção de membro para recuperar dados.

A troca de dados de campo, chamados de troca de campo de registro (RFX) funciona em ambas as direções: de membros de dados do objeto recordset campo para os campos do registro na fonte de dados e do registro na fonte de dados para o objeto de conjunto de registros.

A única ação normalmente, você deve seguir para implementar DoFieldExchange para o conjunto de registros derivado classe é criar a classe com ClassWizard e especifique os nomes e tipos de dados de membros de campo de dados. Você também pode adicionar código para o que grava ClassWizard especificar membros de dados de parâmetro ou lidar com todas as colunas que BIND dinamicamente.Para obter mais informações, consulte o artigo conjunto de registros: Vinculação de colunas de dados (ODBC) dinamicamente.

Quando você declara sua classe derivada do conjunto de registros com ClassWizard, o assistente grava uma substituir de DoFieldExchange para você, que é semelhante o exemplo a seguir:

void CCustomer::DoFieldExchange(CFieldExchange* pFX)
{
   pFX->SetFieldType(CFieldExchange::outputColumn);
   // Macros such as RFX_Text() and RFX_Int() are dependent on the
   // type of the member variable, not the type of the field in the database.
   // ODBC will try to automatically convert the column value to the requested type
   RFX_Long(pFX, _T("[CustomerID]"), m_CustomerID);
   RFX_Text(pFX, _T("[ContactFirstName]"), m_ContactFirstName);
   RFX_Text(pFX, _T("[PostalCode]"), m_PostalCode);
   RFX_Text(pFX, _T("[L_Name]"), m_L_Name);
   RFX_Long(pFX, _T("[BillingID]"), m_BillingID);

   pFX->SetFieldType(CFieldExchange::inputParam);
   RFX_Text(pFX, _T("Param"), m_strParam);
}

Para obter mais informações sobre as funções RFX, consulte o tópico Registro campo Exchange funções.

Para obter mais exemplos e detalhes sobre DoFieldExchange, consulte o artigo Intercâmbio de campo do registro: Como RFX trabalha.Para obter informações Geral sobre RFX, consulte o artigo Registro de campo Exchange.

Exceções

Esse método pode lançar exceções do tipo CDBException *.

Requisitos

Cabeçalho: afxdb.h

Consulte também

Referência

Classe CRecordset

Gráfico de hierarquia

CRecordset::m_nFields

CRecordset::m_nParams

CRecordset::DoBulkFieldExchange

CRecordset::GetFieldValue

Classe CFieldExchange

Outros recursos

CRecordset membros

Registro campo Exchange funções