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
CRecordset::DoBulkFieldExchange