CRecordset::DoFieldExchange
Nazývá výměna dat mezi členy pole dat sady záznamů a odpovídající záznam ve zdroji dat (v obou směrech).Záznam provádí výměnu (RFX).
virtual void DoFieldExchange(
CFieldExchange* pFX
);
Parametry
- pFX
Určuje ukazatel na objekt CFieldExchange.Rámci bude již nastavili tento objekt určit kontext pro pole operace serveru exchange.
Poznámky
Při načítání řádku hromadné není implementována rámci volá tento členské funkce automaticky výměnu dat mezi členy pole dat objektu recordset a odpovídající sloupce aktuální záznam ve zdroji dat.DoFieldExchangePokud existuje, parametr zástupné znaky v řetězci příkazu SQL pro výběr záznamů, sváže členům parametr data.
Pokud provádění hromadných řádek načítání rámci zavolá DoBulkFieldExchange.Implementovat načítání hromadné řádku, je nutné zadat CRecordset::useMultiRowFetch možnost dwOptions parametr v otevřených členské funkce.
[!POZNÁMKA]
DoFieldExchangeje k dispozici pouze v případě, že používáte třídy odvozené od CRecordset .Pokud jste vytvořili objekt recordset přímo z CRecordset , musíte zavolat GetFieldValue členské funkce načíst data.
Výměna data pole nazývá pole záznamu exchange (RFX) funguje v obou směrech: z členů pole dat objektu recordset polí záznamu ve zdroji dat a záznam ve zdroji dat objektu recordset.
Pouze akce musí zpravidla implementovat DoFieldExchange pro vaše odvozené recordset třída je vytvoření třídy s ClassWizard a zadat názvy a datové typy členů pole data.Přidejte kód může také co ClassWizard zapíše parametr datové členy nebo řešit všechny sloupce, které dynamicky svázán.Další informace naleznete v článku záznamů: dynamicky vazba dat sloupců (ODBC).
Při deklarování třídy odvozené záznamů s ClassWizard Průvodce zapíše přepsání DoFieldExchange , který následujícímu příkladu:
void CCustomer::DoFieldExchange(CFieldExchange* pFX)
{
pFX->SetFieldType(CFieldExchange::outputColumn);
// Macros such as RFX_Text() and RFX_Int() are dependent on the
// type of the member variable, not the type of the field in the database.
// ODBC will try to automatically convert the column value to the requested type
RFX_Long(pFX, _T("[CustomerID]"), m_CustomerID);
RFX_Text(pFX, _T("[ContactFirstName]"), m_ContactFirstName);
RFX_Text(pFX, _T("[PostalCode]"), m_PostalCode);
RFX_Text(pFX, _T("[L_Name]"), m_L_Name);
RFX_Long(pFX, _T("[BillingID]"), m_BillingID);
pFX->SetFieldType(CFieldExchange::inputParam);
RFX_Text(pFX, _T("Param"), m_strParam);
}
Další informace o funkcích RFX naleznete v tématu Funkce Exchange pole záznamu.
Další příklady a podrobné informace o DoFieldExchange , naleznete v článku Exchange pole záznamu: Jak funguje RFX.Obecné informace o RFX naleznete v článku Exchange pole záznamu.
Výjimky
Tuto metodu lze vyvolávají výjimky typu CDBException *.
Požadavky
Záhlaví: afxdb.h
Viz také
Referenční dokumentace
CRecordset::DoBulkFieldExchange