Partilhar via


CDaoFieldExchange Classe

Suporta as rotinas DFX (Record Field Exchange) usadas pelas classes de banco de dados DAO.

Observação

DAO é suportado através do Office 2013. DAO 3.6 é a versão final, e é considerado obsoleto.

Sintaxe

class CDaoFieldExchange

Membros

Métodos Públicos

Nome Descrição
CDaoFieldExchange::IsValidOperation Retorna diferente de zero se a operação atual for apropriada para o tipo de campo que está sendo atualizado.
CDaoFieldExchange::SetFieldType Especifica o tipo de membro de dados do conjunto de registros — coluna ou parâmetro — representado por todas as chamadas subsequentes para funções DFX até a próxima chamada para SetFieldType.

Membros de Dados Públicos

Nome Descrição
CDaoFieldExchange::m_nOperation A operação DFX que está sendo executada pela chamada atual para a função de membro do conjunto de registros DoFieldExchange .
CDaoFieldExchange::m_prs Um ponteiro para o conjunto de registros no qual as operações DFX estão sendo executadas.

Observações

CDaoFieldExchange não tem uma classe base.

Use essa classe se estiver escrevendo rotinas de troca de dados para tipos de dados personalizados; caso contrário, você não usará diretamente essa classe. DFX troca dados entre os membros de dados de campo do seu objeto CDaoRecordset e os campos correspondentes do registro atual na fonte de dados. O DFX gerencia a troca em ambas as direções, desde a fonte de dados até a fonte de dados. Consulte a Nota Técnica 53 para obter informações sobre como escrever rotinas DFX personalizadas.

Observação

As classes de banco de dados DAO são distintas das classes de banco de dados MFC baseadas em ODBC (Open Database Connectivity). Todos os nomes de classe de banco de dados DAO têm o prefixo "CDao". Você ainda pode acessar fontes de dados ODBC com as classes DAO. Em geral, as classes MFC baseadas em DAO são mais capazes do que as classes MFC baseadas em ODBC. As classes baseadas em DAO podem acessar dados, inclusive por meio de drivers ODBC, por meio de seu próprio mecanismo de banco de dados. Eles também suportam operações DDL (Data Definition Language), como adicionar tabelas por meio das classes, em vez de ter que chamar DAO você mesmo.

Observação

A troca de campo de registro DAO (DFX) é muito semelhante à troca de campo de registro (RFX) nas classes de banco de dados MFC baseadas em ODBC (CDatabase, CRecordset). Se você entende RFX, você vai achar fácil de usar DFX.

Um CDaoFieldExchange objeto fornece as informações de contexto necessárias para que a troca de campo de registro DAO ocorra. CDaoFieldExchange Os objetos suportam várias operações, incluindo parâmetros de ligação e membros de dados de campo e definição de vários sinalizadores nos campos do registro atual. As operações DFX são executadas em membros de dados de classe de conjunto de registros de tipos definidos pelo enumFieldType em CDaoFieldExchange. Os valores possíveis de FieldType são:

  • CDaoFieldExchange::outputColumn para membros de dados de campo.

  • CDaoFieldExchange::param para membros de dados de parâmetros.

A função de membro IsValidOperation é fornecida para escrever suas próprias rotinas DFX personalizadas. Você usará SetFieldType com freqüência em suas funções CDaoRecordset::D oFieldExchange . Para obter detalhes sobre as funções globais do DFX, consulte Funções de troca de campo de registro. Para obter informações sobre como escrever rotinas DFX personalizadas para seus próprios tipos de dados, consulte a Nota Técnica 53.

Hierarquia de herança

CDaoFieldExchange

Requerimentos

Cabeçalho:afxdao.h

CDaoFieldExchange::IsValidOperation

Se você escrever sua própria função DFX, chame IsValidOperation no início da função para determinar se a operação atual pode ser executada em um determinado tipo de membro de dados de campo (a CDaoFieldExchange::outputColumn ou a CDaoFieldExchange::param).

BOOL IsValidOperation();

Valor de retorno

Diferente de zero se a operação atual for apropriada para o tipo de campo que está sendo atualizado.

Observações

Algumas das operações realizadas pelo mecanismo DFX aplicam-se apenas a um dos tipos de campo possíveis. Siga o modelo das funções DFX existentes.

Para obter informações adicionais sobre como escrever rotinas DFX personalizadas, consulte a Nota Técnica 53.

CDaoFieldExchange::m_nOperation

Identifica a operação a ser executada no objeto CDaoRecordset associado ao objeto de troca de campo.

Observações

O CDaoFieldExchange objeto fornece o contexto para várias operações DFX diferentes no conjunto de registros.

Observação

O PSEUDONULL valor descrito em MarkForAddNew e SetFieldNull operações abaixo é um valor usado para marcar campos Nulo. O mecanismo de troca de campo de registro DAO (DFX) usa esse valor para determinar quais campos foram explicitamente marcados como Nulo. PSEUDONULL não é obrigatório para COleDateTime e COleCurrency campos.

Os valores possíveis de m_nOperation são:

Funcionamento Descrição
AddToParameterList Cria a cláusula PARAMETERS da instrução SQL.
AddToSelectList Cria a cláusula SELECT da instrução SQL.
BindField Vincula um campo no banco de dados a um local de memória em seu aplicativo.
BindParam Define valores de parâmetro para a consulta do conjunto de registros.
Fixup Define o status Nulo de um campo.
AllocCache Aloca o cache usado para verificar se há campos "sujos" no conjunto de registros.
StoreField Salva o registro atual no cache.
LoadField Restaura as variáveis de membro de dados armazenados em cache no conjunto de registros.
FreeCache Libera o cache usado para verificar se há campos "sujos" no conjunto de registros.
SetFieldNull Define o status de um campo como Nulo e o valor como PSEUDONULO.
MarkForAddNew Marca campos "sujos" se não PSEUDONULL.
MarkForEdit Marca os campos "sujos" se não corresponderem ao cache.
SetDirtyField Define valores de campo marcados como "sujos".
DumpField Despeja o conteúdo de um campo (somente depuração).
MaxDFXOperation Usado para verificação de entrada.

CDaoFieldExchange::m_prs

Contém um ponteiro para o objeto CDaoRecordset associado ao CDaoFieldExchange objeto.

Observações

CDaoFieldExchange::SetFieldType

Chame SetFieldType a substituição da CDaoRecordset sua DoFieldExchange classe.

void SetFieldType(UINT nFieldType);

Parâmetros

nFieldType
Um valor do enum FieldType, declarado em CDaoFieldExchange, que pode ser um dos seguintes:

  • CDaoFieldExchange::outputColumn

  • CDaoFieldExchange::param

Observações

Normalmente, o ClassWizard escreve esta chamada para você. Se você escrever sua própria função e estiver usando o assistente para escrever sua DoFieldExchange função, adicione chamadas à sua própria função fora do mapa de campo. Se você não usar o assistente, não haverá um mapa de campo. A chamada precede as chamadas para funções DFX, uma para cada membro de dados de campo da sua classe, e identifica o tipo de campo como CDaoFieldExchange::outputColumn.

Se você parametrizar sua classe de conjunto de registros, deverá adicionar chamadas DFX para todos os membros de dados de parâmetro (fora do mapa de campo) e preceder essas chamadas com uma chamada para SetFieldType. Passe o valor CDaoFieldExchange::param. (Em vez disso, você pode usar um CDaoQueryDef e definir seus valores de parâmetro.)

Em geral, cada grupo de chamadas de função DFX associadas a membros de dados de campo ou membros de dados de parâmetro deve ser precedida por uma chamada para SetFieldType. O parâmetro nFieldType de cada SetFieldType chamada identifica o tipo de membros de dados representados pelas chamadas de função DFX que seguem a SetFieldType chamada.

Ver também

Gráfico de Hierarquia
CDaoRecordset Classe