Sdílet prostřednictvím


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

Třída CRecordset

Graf hierarchie

CRecordset::m_nFields

CRecordset::m_nParams

CRecordset::DoBulkFieldExchange

CRecordset::GetFieldValue

Třída CFieldExchange

Další zdroje

Funkce výměny polí v záznamu