Virtual void DoFieldExchange ( CFieldExchange * pFX );
gettare ( CDBException );
Parametri
pFX
Puntatore a un oggetto CFieldExchange . Il quadro sarà già hanno istituito questo oggetto per specificare un contesto per l'operazione di cambio di campo.
Osservazioni
Quando il recupero di massa di riga non è implementato, il framework chiama questa funzione membro per lo scambio di dati tra i membri dati di campo dell'oggetto recordset e colonne corrispondenti del record corrente nell'origine dati automaticamente. DoFieldExchange associa anche i membri dati di parametro, se del caso, a segnaposto di parametro nella stringa istruzione SQL per la selezione del recordset.
Se viene implementato il recupero di massa di fila, il framework chiama DoBulkFieldExchange. Per implementare il recupero di massa di righe, è necessario specificare l'opzione CRecordset:: useMultiRowFetch del parametro dwOptions nella funzione membro Open.
&Notanbsp;DoFieldExchange è disponibile solo se si utilizza una classe derivata da CRecordset. Se hai creato un oggetto recordset direttamente da CRecordset, è necessario chiamare la funzione membro GetFieldValue per recuperare i dati.
Lo scambio dei dati di campo, chiamati campi record (RFX), lavora in entrambe le direzioni: da membri dati di campo dell'oggetto recordset ai campi del record dell'origine dati e dal record dell'origine dati all'oggetto recordset.
L'unica azione che normalmente deve adottare per implementare DoFieldExchange per la classe derivata recordset è quello di creare la classe con ClassWizard e specificare i nomi e i tipi di dati dei membri dati di campo. Si potrebbe anche aggiungere codice ciò ClassWizard scrive per specificare i membri dati di parametro o per affrontare tutte le colonne che legano in modo dinamico. Per ulteriori informazioni, vedere l'articolo Recordset: dinamicamente associazione dati colonne (ODBC) nel manuale del programmatore di Visual C++.
Quando si dichiara la classe derivata recordset con ClassWizard, la procedura guidata scrive un override di DoFieldExchange per voi, che ricorda l'esempio seguente:
public static void CCustSet::DoFieldExchange (CFieldExchange pFX)
{
nbsp; //{{AFX_FIELD_MAP(CCustSet)
pFX - > SetFieldType(CFieldExchange::outputColumn);
RFX_Text (pFX, "Nome", m_strName);
RFX_Int (pFX, "Age", m_wAge);
//}}AFX_FIELD_MAP
}
Per ulteriori informazioni sulle funzioni RFX, vedere l'argomento Record campo Exchange funzioni.
Per ulteriori esempi e informazioni dettagliate sul DoFieldExchange, vedere l'articolo Record campo Exchange: RFX di come funziona. Per informazioni generali sulla RFX, vedere l'articolo Record campo Exchange. Entrambi gli articoli sono in manuale del programmatore di Visual C++.
Pa&noramica CRecordset |nbsp; Membri della classe | Gerarchia Chart
Vedere a&nchenbsp;CRecordset::m_nFields, CRecordset::m_nParams, CRecordset::DoBulkFieldExchange, CRecordset::GetFieldValue, CFieldExchange, Record campo Exchange funzioni