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
.