Classe CDaoFieldExchange
Dá suporte às rotinas de DFX (troca de campo de registro de DAO) usadas pelas classes de banco de dados DAO.
Observação
O DAO tem suporte por meio do Office 2013. DAO 3.6 é a versão final e é considerada obsoleta.
Sintaxe
class CDaoFieldExchange
Membros
Métodos públicos
Nome | Descrição |
---|---|
CDaoFieldExchange::IsValidOperation | Retornará um valor diferente de zero se a operação atual for apropriada para o tipo de campo que está sendo atualizado. |
CDaoFieldExchange::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 DFX até a próxima chamada para SetFieldType . |
Membros de Dados Públicos
Nome | Descrição |
---|---|
CDaoFieldExchange::m_nOperation | A operação DFX sendo executada pela chamada atual para a função membro DoFieldExchange do conjunto de registros. |
CDaoFieldExchange::m_prs | Um ponteiro para o conjunto de registros no qual as operações DFX estão sendo executadas. |
Comentários
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á essa classe diretamente. O DFX troca dados entre os membros de dados de campo do objeto CDaoRecordset e os campos correspondentes do registro atual na fonte de dados. O DFX gerencia a troca nas duas direções, da fonte de dados e para ela. Consulte a Nota Técnica 53 para obter informações sobre como escrever rotinas personalizadas do DFX.
Observação
As classes de banco de dados do DAO são diferentes das classes de banco de dados MFC com base no ODBC (Open Database Connectivity). Todos os nomes de classe de banco de dados do 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 do próprio mecanismo de banco de dados. Elas também dão suporte a operações de DDL (Linguagem de Definição de Dados), como adicionar tabelas por meio das classes, em vez de precisar chamar o DAO por conta própria.
Observação
O DFX (troca de campos de registro DAO) é muito semelhante ao RFX (troca de campos de registro) nas classes de banco de dados MFC baseadas em ODBC (CDatabase
, CRecordset
). Se você entender o RFX, será fácil usar o DFX.
Um objeto CDaoFieldExchange
fornece as informações de contexto necessárias para que a troca de campos de registro DAO ocorra. Os objetos CDaoFieldExchange
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 DFX são executadas em membros de dados da classe recordset de tipos definidos pelo enum
FieldType no CDaoFieldExchange
. Estes são possíveis valores de FieldType:
CDaoFieldExchange::outputColumn
para membros de dados de campo.CDaoFieldExchange::param
para membros de dados de parâmetro.
A função membro IsValidOperation é fornecida para escrever suas rotinas personalizadas de DFX. Você usará SetFieldType com frequência em suas funções CDaoRecordset::DoFieldExchange. Para obter detalhes sobre as funções globais de DFX, consulte Funções de troca de campos de registro. Para obter informações sobre como escrever rotinas personalizadas de DFX para seus tipos de dados, consulte a Nota Técnica 53.
Hierarquia de herança
CDaoFieldExchange
Requisitos
Cabeçalho: afxdao.h
CDaoFieldExchange::IsValidOperation
Se você escrever sua função DFX, chame IsValidOperation
no início dela para determinar se a operação atual pode ser executada em um determinado tipo de membro de dados de campo (um CDaoFieldExchange::outputColumn
ou um 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.
Comentários
Algumas das operações executadas pelo mecanismo DFX se aplicam 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 de 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 campos.
Comentários
O objeto CDaoFieldExchange
fornece o contexto para várias operações de DFX diferentes no conjunto de registros.
Observação
O PSEUDONULL
valor descrito nas MarkForAddNew
operações e SetFieldNull
abaixo é um valor usado para marcar os campos como nulos. O DFX (mecanismo de troca de campos de registro DAO) usa esse valor para determinar quais campos foram marcados explicitamente como nulo. PSEUDONULL
não é necessário para COleDateTime
e COleCurrency
campos.
Os possíveis valores de m_nOperation
são:
Operação | Descrição |
---|---|
AddToParameterList |
Compila a cláusula PARAMETERS da instrução SQL. |
AddToSelectList |
Compila a cláusula SELECT da instrução SQL. |
BindField |
Associa 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 membro de dados armazenadas 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 valor como PSEUDONULL. |
MarkForAddNew |
Marca campos como "sujos" quando não são PSEUDONULL. |
MarkForEdit |
Marca campos como "sujos" quando eles não correspondem ao cache. |
SetDirtyField |
Define os 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 objeto CDaoFieldExchange
.
Comentários
CDaoFieldExchange::SetFieldType
Chame SetFieldType
na substituição DoFieldExchange
da classe CDaoRecordset
.
void SetFieldType(UINT nFieldType);
Parâmetros
nFieldType
Um valor da enumeração FieldType, declarado em CDaoFieldExchange
, que pode ser um dos seguintes:
CDaoFieldExchange::outputColumn
CDaoFieldExchange::param
Comentários
Normalmente, ClassWizard escreve essa chamada para você. Se você escrever sua função e estiver usando o assistente para escrever a função DoFieldExchange
, adicione chamadas à sua função fora do mapa de campo. Se você não usar o assistente, não haverá um mapa de campo. A chamada precede chamadas para funções DFX, uma para cada membro de dados de campo da classe, e identifica o tipo de campo como CDaoFieldExchange::outputColumn
.
Se você parametrizar a classe do conjunto de registros, deverá adicionar chamadas de DFX para todos os membros de dados de parâmetro (fora do mapa de campos) e preceder essas chamadas com uma chamada para SetFieldType
. Passe o valor CDaoFieldExchange::param
. (Você pode, em vez disso, 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 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 DFX que seguem a chamada SetFieldType
.