Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Dá suporte às rotinas rfx (troca de campo de registro) e troca de campo de registro em massa (RFX em massa) usadas pelas classes de banco de dados.
Sintaxe
class CFieldExchange
Membros
Métodos públicos
| Nome | Descrição |
|---|---|
| CFieldExchange::IsFieldType | Retornará um valor diferente de zero se a operação atual for apropriada para o tipo de campo que está sendo atualizado. |
| CFieldExchange::SetFieldType | Especifica o tipo do membro de dados do conjunto de registros — coluna ou parâmetro — representado por todas as chamadas seguintes para funções de RFX até a próxima chamada para SetFieldType. |
Comentários
CFieldExchange não tem uma classe base.
Use essa classe se você estiver escrevendo rotinas de troca de dados para tipos de dados personalizados ou se estiver implementando a busca em massa de linhas. Caso contrário, você não usará essa classe diretamente. RFX e RFX em massa trocam dados entre os membros de dados de campo do objeto do conjunto de registros e os campos correspondentes do registro atual na fonte de dados.
Observação
Se você estiver trabalhando com as classes DAO (objetos de acesso a dados) em vez das classes ODBC, use a classe CDaoFieldExchange. Para obter mais informações, confira o artigo Visão geral: programação de banco de dados.
Um objeto CFieldExchange fornece as informações de contexto necessárias para que a troca de campos de registro ou a troca de campos de registro em massa ocorra. Os objetos CFieldExchange dão suporte a várias operações, incluindo a associação de parâmetros e membros de dados de campo e a configuração de vários sinalizadores nos campos do registro atual. As operações RFX e RFX em massa são executadas em membros de dados da classe de conjunto de registros de tipos definidos pelo enum FieldType em CFieldExchange. Estes são possíveis valores de FieldType:
CFieldExchange::outputColumnpara membros de dados de campo.CFieldExchange::inputParamouCFieldExchange::parampara membros de dados de parâmetros de entrada.CFieldExchange::outputParampara membros de dados do parâmetro de saída.CFieldExchange::inoutParampara membros de dados do parâmetro de entrada/saída.
A maioria das funções membro e membros de dados da classe são fornecidos para escrever suas rotinas RFX personalizadas. Você usará SetFieldType com frequência. Para saber mais, confira os artigos RFX (troca de campos de registro) e Conjunto de registros (ODBC). Para obter informações sobre a busca de linhas em massa, confira o artigo Conjunto de registros: buscando registros em massa (ODBC). Para obter detalhes sobre as funções globais de RFX e RFX em massa, consulte Funções de troca de campos de registro na seção Macros e globais do MFC desta referência.
Hierarquia de herança
CFieldExchange
Requisitos
Cabeçalho: afxdb.h
CFieldExchange::IsFieldType
Se você escrever sua função RFX, chame IsFieldType no início dela para determinar se a operação atual pode ser executada em um determinado campo ou tipo de membro de dados de parâmetro (um CFieldExchange::outputColumn, CFieldExchange::inputParam, CFieldExchange::param, CFieldExchange::outputParam ou CFieldExchange::inoutParam).
BOOL IsFieldType(UINT* pnField);
Parâmetros
pnField
O número sequencial do membro de dados de campo ou parâmetro é retornado nesse parâmetro. Esse número corresponde à ordem do membro de dados na função CRecordset::DoFieldExchange ou CRecordset::DoBulkFieldExchange.
Valor de retorno
Diferente de zero se a operação atual puder ser executada no tipo de parâmetro ou campo atual.
Comentários
Siga o modelo das funções RFX existentes.
CFieldExchange::SetFieldType
Você precisa de uma chamada para SetFieldType na substituição de DoFieldExchange ou DoBulkFieldExchange da classe do conjunto de registros.
void SetFieldType(UINT nFieldType);
Parâmetros
nFieldType
Um valor do enum FieldType, declarado em CFieldExchange, que pode ser um dos seguintes:
CFieldExchange::outputColumnCFieldExchange::inputParamCFieldExchange::paramCFieldExchange::outputParamCFieldExchange::inoutParam
Comentários
Para membros de dados de campo, você precisa chamar SetFieldType com um parâmetro de CFieldExchange::outputColumn, seguido por chamadas para as funções RFX ou RFX em massa. Se você não tiver implementado a busca de linha em massa, ClassWizard fará essa chamada SetFieldType para você na seção de mapa de campos de DoFieldExchange.
Se você parametrizar a classe de conjunto de registros, precisará chamar SetFieldType novamente, fora de qualquer seção do mapa de campos, seguida por chamadas RFX para todos os membros de dados de parâmetro. Cada tipo de membro de dados de parâmetro deve ter a própria chamada SetFieldType. A tabela a seguir descreve os diferentes valores que você pode passar para SetFieldType para representar os membros de dados de parâmetro da classe:
| Valor do parâmetro SetFieldType | Tipo do membro de dados do parâmetro |
|---|---|
CFieldExchange::inputParam |
parâmetro de entrada. Um valor passado para a consulta ou procedimento armazenado do conjunto de registros. |
CFieldExchange::param |
O mesmo que CFieldExchange::inputParam. |
CFieldExchange::outputParam |
parâmetro de saída. Um valor retornado do procedimento armazenado do conjunto de registros. |
CFieldExchange::inoutParam |
Parâmetro de entrada/saída. Um valor passado para p procedimento armazenado do conjunto de registros e retornado dele. |
Em geral, cada grupo de chamadas de função RFX associadas a membros de dados de campo ou membros de dados de parâmetro deve ser precedido por uma chamada para SetFieldType. O parâmetro nFieldType de cada chamada SetFieldType identifica o tipo dos membros de dados representados pelas chamadas de função RFX que seguem a chamada SetFieldType.
Para obter mais informações sobre como lidar com parâmetros de saída e de entrada/saída, consulte a função membro CRecordset FlushResultSet. Para obter mais informações sobre as funções RFX e RFX em massa, confira o tópico Funções de troca de campos de registro. Para obter informações relacionadas sobre a busca de linhas em massa, confira o artigo Conjunto de registros: buscando registros em massa (ODBC).
Exemplo
Este exemplo mostra várias chamadas para funções RFX com chamadas que as acompanham para SetFieldType. Observe que SetFieldType é chamado por meio do ponteiro pFX para um objeto CFieldExchange.
void CSections::DoFieldExchange(CFieldExchange *pFX)
{
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Text(pFX, _T("[CourseID]"), m_CourseID);
RFX_Text(pFX, _T("[InstructorID]"), m_InstructorID);
RFX_Text(pFX, _T("[RoomNo]"), m_RoomNo);
RFX_Text(pFX, _T("[Schedule]"), m_Schedule);
// output parameter
pFX->SetFieldType(CFieldExchange::outputParam);
RFX_Long(pFX, _T("Instructor_Count"), m_nCountParam);
// input parameter
pFX->SetFieldType(CFieldExchange::inputParam);
RFX_Text(pFX, _T("Department_Name"), m_strNameParam);
}