Sdílet prostřednictvím


CDaoFieldExchange – třída

Podporuje rutiny výměny polí záznamu DAO (DFX) používané databázovými třídami DAO.

Poznámka:

Rozhraní DAO se podporuje prostřednictvím Office 2013. DAO 3.6 je konečná verze a je považována za za zastaralou.

Syntaxe

class CDaoFieldExchange

Členové

Veřejné metody

Název Popis
CDaoFieldExchange::IsValidOperation Vrátí nenulové, pokud je aktuální operace vhodná pro typ aktualizovaného pole.
CDaoFieldExchange::SetFieldType Určuje typ datového členu sady záznamů – sloupec nebo parametr – reprezentovaný všemi následnými voláními funkcí DFX do dalšího volání SetFieldType.

Veřejné datové členy

Název Popis
CDaoFieldExchange::m_nOperation Operace DFX prováděná aktuálním voláním členské funkce sady DoFieldExchange záznamů.
CDaoFieldExchange::m_prs Ukazatel na sadu záznamů, na které se provádějí operace DFX.

Poznámky

CDaoFieldExchange nemá základní třídu.

Tuto třídu použijte, pokud píšete rutiny výměny dat pro vlastní datové typy; jinak tuto třídu nebudete používat přímo. DFX vyměňuje data mezi datovými členy pole vašeho objektu CDaoRecordset a odpovídajícími poli aktuálního záznamu ve zdroji dat. DFX spravuje výměnu v obou směrech od zdroje dat i ke zdroji dat. Informace o psaní vlastních rutin DFX naleznete v technické poznámce 53 .

Poznámka:

Databázové třídy DAO se liší od databázových tříd MFC založených na rozhraní ODBC (Open Database Connectivity). Všechny názvy databázových tříd DAO mají předponu CDao. Stále máte přístup ke zdrojům dat ODBC pomocí tříd DAO. Obecně platí, že třídy MFC založené na rozhraní DAO jsou schopny více než třídy MFC založené na rozhraní ODBC. Třídy založené na rozhraní DAO mají přístup k datům, včetně prostřednictvím ovladačů ODBC, prostřednictvím vlastního databázového stroje. Podporují také operace jazyka DDL (Data Definition Language), například přidávání tabulek prostřednictvím tříd, místo abyste museli volat DAO sami.

Poznámka:

Výměna polí záznamu DAO (DFX) je velmi podobná výměně polí záznamu (RFX) v databázových třídách MFC založených na rozhraní ODBC ( CDatabase, CRecordset). Pokud rozumíte dokumentu RFX, můžete snadno používat DFX.

Objekt CDaoFieldExchange poskytuje kontextové informace potřebné pro výměnu polí záznamu DAO. CDaoFieldExchange objekty podporují řadu operací, včetně parametrů vazby a datových členů polí a nastavení různých příznaků u polí aktuálního záznamu. Operace DFX se provádějí u datových členů třídy záznamů definovaných typem enum FieldType v CDaoFieldExchange. Možné hodnoty FieldType jsou:

  • CDaoFieldExchange::outputColumn pro datové členy pole.

  • CDaoFieldExchange::param pro datové členy parametrů.

Členová funkce IsValidOperation je poskytována pro psaní vlastních rutin DFX. SetFieldType budete často používat ve svých funkcích CDaoRecordset::D oFieldExchange. Podrobnosti o globálních funkcích DFX najdete v tématu Funkce výměny polí záznamu. Informace o psaní vlastních rutin DFX pro vlastní datové typy naleznete v technické poznámce 53.

Hierarchie dědičnosti

CDaoFieldExchange

Požadavky

Záhlaví: afxdao.h

CDaoFieldExchange::IsValidOperation

Pokud napíšete vlastní funkci DFX, zavolejte IsValidOperation na začátku funkce, abyste zjistili, jestli je možné aktuální operaci provést u konkrétního datového typu pole (a CDaoFieldExchange::outputColumn nebo a CDaoFieldExchange::param).

BOOL IsValidOperation();

Návratová hodnota

Nenulové, pokud je aktuální operace vhodná pro typ pole, které se aktualizuje.

Poznámky

Některé operace prováděné mechanismem DFX se vztahují pouze na jeden z možných typů polí. Postupujte podle modelu existujících funkcí DFX.

Další informace o psaní vlastních rutin DFX naleznete v technické poznámce 53.

CDaoFieldExchange::m_nOperation

Identifikuje operaci, která se má provést u objektu CDaoRecordset přidruženého k objektu výměny polí.

Poznámky

Objekt CDaoFieldExchange poskytuje kontext pro řadu různých operací DFX v sadě záznamů.

Poznámka:

Hodnota PSEUDONULL popsaná v MarkForAddNew následujících operacích SetFieldNull je hodnota použitá k označení polí Null. Mechanismus výměny polí záznamu DAO (DFX) používá tuto hodnotu k určení, která pole byla explicitně označena null. PSEUDONULL není vyžadováno pro COleDateTime pole a COleCurrency pole.

Možné hodnoty m_nOperation :

Operation Popis
AddToParameterList Vytvoří klauzuli PARAMETERS příkazu SQL.
AddToSelectList Vytvoří klauzuli SELECT příkazu SQL.
BindField Vytvoří vazbu pole v databázi na umístění paměti ve vaší aplikaci.
BindParam Nastaví hodnoty parametrů pro dotaz sady záznamů.
Fixup Nastaví stav Null pro pole.
AllocCache Přidělí mezipaměť použitou ke kontrole "nezašpiněných" polí v sadě záznamů.
StoreField Uloží aktuální záznam do mezipaměti.
LoadField Obnoví proměnné člena dat v mezipaměti v sadě záznamů.
FreeCache Uvolní mezipaměť použitou ke kontrole "nezašpiněných" polí v sadě záznamů.
SetFieldNull Nastaví stav pole na hodnotu Null a hodnotu na PSEUDONULL.
MarkForAddNew Označí pole "dirty", pokud ne PSEUDONULL.
MarkForEdit Označí pole "špinavá", pokud neodpovídají mezipaměti.
SetDirtyField Nastaví hodnoty polí označené jako "špinavé".
DumpField Vypíše obsah pole (pouze ladění).
MaxDFXOperation Používá se pro kontrolu vstupu.

CDaoFieldExchange::m_prs

Obsahuje ukazatel na CDaoRecordset objekt přidružený k objektu CDaoFieldExchange .

Poznámky

CDaoFieldExchange::SetFieldType

Volání SetFieldType v přepsání předmětu DoFieldExchange CDaoRecordset

void SetFieldType(UINT nFieldType);

Parametry

nFieldType
Hodnota výčtu FieldType deklarovaná v CDaoFieldExchange, která může být některou z následujících:

  • CDaoFieldExchange::outputColumn

  • CDaoFieldExchange::param

Poznámky

TřídaWizard za normálních okolností píše toto volání za vás. Pokud píšete vlastní funkci a k zápisu funkce DoFieldExchange používáte průvodce, přidejte volání do vlastní funkce mimo mapu polí. Pokud průvodce nepoužíváte, nebude k dispozici mapa polí. Volání předchází volání funkcí DFX, jedno pro každý datový člen pole třídy a identifikuje typ pole jako CDaoFieldExchange::outputColumn.

Pokud parametrizujete třídu sady záznamů, měli byste přidat volání DFX pro všechny členy dat parametrů (mimo mapu pole) a před tyto volání zavolat SetFieldType. Předejte hodnotu CDaoFieldExchange::param. (Místo toho můžete použít CDaoQueryDef a nastavení hodnot parametrů.)

Obecně platí, že každá skupina volání funkce DFX přidružená k datovým členům pole nebo datovým členům parametrů musí předcházet voláním SetFieldType. Parametr nFieldType každého SetFieldType volání identifikuje typ datových členů reprezentovaných voláními funkce DFX, které následují za voláním SetFieldType .

Viz také

Graf hierarchie
CDaoRecordset – třída