Classe CDaoFieldExchange
Supporta le routine DFX DAO (record field exchange) utilizzate dalle classi di database DAO.
Nota
DAO è supportato tramite Office 2013. DAO 3.6 è la versione finale ed è considerata obsoleta.
Sintassi
class CDaoFieldExchange
Membri
Metodi pubblici
Nome | Descrizione |
---|---|
CDaoFieldExchange::IsValidOperation | Restituisce un valore diverso da zero se l'operazione corrente è appropriata per il tipo di campo da aggiornare. |
CDaoFieldExchange::SetFieldType | Specifica il tipo di membro dati del recordset , colonna o parametro, rappresentato da tutte le chiamate successive alle funzioni DFX fino alla chiamata successiva a SetFieldType . |
Membri dati pubblici
Nome | Descrizione |
---|---|
CDaoFieldExchange::m_nOperation | Operazione DFX eseguita dalla chiamata corrente alla funzione membro del DoFieldExchange recordset. |
CDaoFieldExchange::m_prs | Puntatore al recordset in cui vengono eseguite le operazioni DFX. |
Osservazioni:
CDaoFieldExchange
non dispone di una classe di base.
Utilizzare questa classe se si scrivono routine di scambio di dati per i tipi di dati personalizzati; in caso contrario, non si userà direttamente questa classe. DFX scambia dati tra i membri dati del campo dell'oggetto CDaoRecordset e i campi corrispondenti del record corrente nell'origine dati. DFX gestisce lo scambio in entrambe le direzioni, dall'origine dati e all'origine dati. Per informazioni sulla scrittura di routine DFX personalizzate, vedere La nota tecnica 53 .
Nota
Le classi di database DAO sono distinte dalle classi di database MFC basate su ODBC (Open Database Connectivity). Tutti i nomi delle classi di database DAO hanno il prefisso "CDao". È comunque possibile accedere alle origini dati ODBC con le classi DAO. In generale, le classi MFC basate su DAO sono più capaci delle classi MFC basate su ODBC. Le classi basate su DAO possono accedere ai dati, inclusi i driver ODBC, tramite il proprio motore di database. Supportano anche operazioni DDL (Data Definition Language), ad esempio l'aggiunta di tabelle tramite le classi anziché la necessità di chiamare manualmente DAO.
Nota
Lo scambio di campi di record DAO (DFX) è molto simile allo scambio di campi di record (RFX) nelle classi di database MFC basate su ODBC ( , CDatabase
CRecordset
). Se si comprende RFX, sarà facile usare DFX.
Un CDaoFieldExchange
oggetto fornisce le informazioni di contesto necessarie per lo scambio di campi di record DAO. CDaoFieldExchange
gli oggetti supportano una serie di operazioni, inclusi i parametri di associazione e i membri dati del campo e l'impostazione di vari flag nei campi del record corrente. Le operazioni DFX vengono eseguite sui membri dati della classe recordset di tipi definiti da enum
FieldType in CDaoFieldExchange
. I valori FieldType possibili sono:
CDaoFieldExchange::outputColumn
per i membri dati del campo.CDaoFieldExchange::param
per i membri dati dei parametri.
La funzione membro IsValidOperation viene fornita per la scrittura di routine DFX personalizzate. Nelle funzioni CDaoRecordset::D oFieldExchange si userà spesso SetFieldType. Per informazioni dettagliate sulle funzioni globali DFX, vedere Funzioni di scambio dei campi di record. Per informazioni sulla scrittura di routine DFX personalizzate per i propri tipi di dati, vedere La nota tecnica 53.
Gerarchia di ereditarietà
CDaoFieldExchange
Requisiti
Intestazione: afxdao.h
CDaoFieldExchange::IsValidOperation
Se si scrive una funzione DFX personalizzata, chiamare IsValidOperation
all'inizio della funzione per determinare se l'operazione corrente può essere eseguita su un particolare tipo di membro dati del campo (o CDaoFieldExchange::outputColumn
).CDaoFieldExchange::param
BOOL IsValidOperation();
Valore restituito
Diverso da zero se l'operazione corrente è appropriata per il tipo di campo da aggiornare.
Osservazioni:
Alcune delle operazioni eseguite dal meccanismo DFX si applicano solo a uno dei possibili tipi di campo. Seguire il modello delle funzioni DFX esistenti.
Per altre informazioni sulla scrittura di routine DFX personalizzate, vedere La nota tecnica 53.
CDaoFieldExchange::m_nOperation
Identifica l'operazione da eseguire sull'oggetto CDaoRecordset associato all'oggetto scambio di campi.
Osservazioni:
L'oggetto CDaoFieldExchange
fornisce il contesto per diverse operazioni DFX sul recordset.
Nota
Il PSEUDONULL
valore descritto sotto le MarkForAddNew
operazioni e SetFieldNull
riportato di seguito è un valore usato per contrassegnare i campi Null. Il meccanismo di scambio dei campi dei record DAO (DFX) usa questo valore per determinare quali campi sono stati contrassegnati in modo esplicito su Null. PSEUDONULL
non è obbligatorio per COleDateTime
i campi e COleCurrency
.
I valori possibili di m_nOperation
sono:
Operazione | Descrizione |
---|---|
AddToParameterList |
Compila la clausola PARAMETERS dell'istruzione SQL. |
AddToSelectList |
Compila la clausola SELECT dell'istruzione SQL. |
BindField |
Associa un campo nel database a una posizione di memoria nell'applicazione. |
BindParam |
Imposta i valori dei parametri per la query del recordset. |
Fixup |
Imposta lo stato Null per un campo. |
AllocCache |
Alloca la cache utilizzata per verificare la presenza di campi "dirty" nel recordset. |
StoreField |
Salva il record corrente nella cache. |
LoadField |
Ripristina le variabili membro dati memorizzate nella cache nel recordset. |
FreeCache |
Libera la cache usata per verificare la presenza di campi "dirty" nel recordset. |
SetFieldNull |
Imposta lo stato di un campo su Null e il valore su PSEUDONULL. |
MarkForAddNew |
Contrassegna i campi "dirty" se non PSEUDONULL. |
MarkForEdit |
Contrassegna i campi "dirty" se non corrispondono alla cache. |
SetDirtyField |
Imposta i valori dei campi contrassegnati come "dirty". |
DumpField |
Esegue il dump del contenuto di un campo (solo debug). |
MaxDFXOperation |
Utilizzato per il controllo dell'input. |
CDaoFieldExchange::m_prs
Contiene un puntatore all'oggetto CDaoRecordset associato all'oggetto CDaoFieldExchange
.
Osservazioni:
CDaoFieldExchange::SetFieldType
Chiamare SetFieldType
l'override CDaoRecordset
della DoFieldExchange
classe.
void SetFieldType(UINT nFieldType);
Parametri
nFieldType
Valore dell'enum FieldType, dichiarato in CDaoFieldExchange
, che può essere uno dei seguenti:
CDaoFieldExchange::outputColumn
CDaoFieldExchange::param
Osservazioni:
In genere, ClassWizard scrive questa chiamata per te. Se si scrive una funzione personalizzata e si usa la procedura guidata per scrivere la DoFieldExchange
funzione, aggiungere chiamate alla propria funzione all'esterno della mappa dei campi. Se non si usa la procedura guidata, non sarà presente una mappa dei campi. La chiamata precede le chiamate alle funzioni DFX, una per ogni membro dati del campo della classe e identifica il tipo di campo come CDaoFieldExchange::outputColumn
.
Se si parametrizza la classe recordset, è necessario aggiungere chiamate DFX per tutti i membri dati dei parametri (all'esterno della mappa dei campi) e precedere queste chiamate con una chiamata a SetFieldType
. Passare il valore CDaoFieldExchange::param
. (È invece possibile usare un CDaoQueryDef e impostarne i valori dei parametri.
In generale, ogni gruppo di chiamate di funzione DFX associate ai membri dati del campo o ai membri dati dei parametri deve essere preceduto da una chiamata a SetFieldType
. Il parametro nFieldType di ogni SetFieldType
chiamata identifica il tipo dei membri dati rappresentati dalle chiamate di funzione DFX che seguono la SetFieldType
chiamata.