Megosztás:


CDaoFieldExchange osztály

Támogatja a DAO-adatbázisosztályok által használt DAO rekordmezőcsere (DFX) rutinokat.

Megjegyzés:

A DAO az Office 2013-on keresztül támogatott. A DAO 3.6 a végleges verzió, és elavultnak számít.

Szemantika

class CDaoFieldExchange

Tagok

Nyilvános metódusok

Név Leírás
CDaoFieldExchange::IsValidOperation Nonzero értéket ad vissza, ha az aktuális művelet megfelel a frissítendő mező típusának.
CDaoFieldExchange::SetFieldType Megadja a rekordhalmaz adattagjának típusát – oszlopot vagy paramétert –, amelyet a következő hívásig az DFX-függvények összes további hívása SetFieldTypejelöl.

Nyilvános adatok tagjai

Név Leírás
CDaoFieldExchange::m_nOperation A rekordhalmaz tagfüggvényének aktuális hívása DoFieldExchange által végrehajtott DFX-művelet.
CDaoFieldExchange::m_prs Mutató arra a rekordhalmazra, amelyen a DFX-műveleteket hajtják végre.

Megjegyzések

CDaoFieldExchange nem rendelkezik alaposztálysal.

Ezt az osztályt akkor használja, ha adatcsere rutinokat ír egyéni adattípusokhoz; ellenkező esetben nem fogja közvetlenül használni ezt az osztályt. A DFX adatokat cserél a CDaoRecordset objektum mezőadat-tagjai és az adatforrás aktuális rekordjának megfelelő mezői között. A DFX mindkét irányban kezeli az adatcserét az adatforrástól az adatforrásig. Az egyéni DFX-rutinok írásáról további információt az 53. műszaki megjegyzésben talál.

Megjegyzés:

A DAO-adatbázisosztályok különböznek az MFC-adatbázisosztályoktól az Open Database Connectivity (ODBC) alapján. Minden DAO-adatbázisosztály neve rendelkezik a "CDao" előtaggal. A DAO-osztályokkal továbbra is elérheti az ODBC-adatforrásokat. Általánosságban elmondható, hogy a DAO-n alapuló MFC-osztályok jobban képesek, mint az ODBC-n alapuló MFC-osztályok. A DAO-alapú osztályok saját adatbázismotorjukon keresztül férhetnek hozzá az adatokhoz, beleértve az ODBC-illesztőprogramokat is. Emellett támogatják az Adatdefiníciós nyelv (DDL) műveleteket is, például táblákat adnak hozzá az osztályokon keresztül, ahelyett, hogy saját maga kellene meghívniuk a DAO-t.

Megjegyzés:

A DAO rekordmezőcsere (DFX) nagyon hasonlít az ODBC-alapú MFC-adatbázisosztályokban (RFXCDatabase) lévő rekordmezőcserére (CRecordsetRFX). Ha ismeri az RFX-et, könnyen használhatja a DFX-et.

Az CDaoFieldExchange objektumok a DAO rekordmezőinek cseréjéhez szükséges környezeti információkat tartalmazzák. CDaoFieldExchange az objektumok számos műveletet támogatnak, beleértve a kötési paramétereket és a mezőadat-tagokat, valamint az aktuális rekord mezőinek különböző jelzőit. A DFX-műveleteket a enumáltal definiált adathalmaz-adattagokon hajtja végre a rendszer.CDaoFieldExchange A Lehetséges FieldType értékek a következők:

  • CDaoFieldExchange::outputColumn mezőadat-tagok számára.

  • CDaoFieldExchange::param paraméteradat-tagok számára.

Az IsValidOperation tagfüggvény a saját egyéni DFX-rutinok írására szolgál. A SetFieldType gyakran használatos a CDaoRecordset::D oFieldExchange függvényekben. A globális DFX-függvényekkel kapcsolatos részletekért lásd a Rekordmező exchange-függvényei című témakört. Az egyéni DFX-rutinok saját adattípusokhoz való írásáról az 53. technikai megjegyzésben olvashat.

Öröklési hierarchia

CDaoFieldExchange

Követelmények

fejléc:afxdao.h

CDaoFieldExchange::IsValidOperation

Ha saját DFX-függvényt ír, a függvény elején hívja meg IsValidOperation , hogy az aktuális művelet végrehajtható-e egy adott mezőadat-tagtípuson ( CDaoFieldExchange::outputColumn a vagy a CDaoFieldExchange::param).

BOOL IsValidOperation();

Visszaadott érték

Nem, ha az aktuális művelet megfelel a frissítendő mező típusának.

Megjegyzések

A DFX-mechanizmus által végrehajtott műveletek némelyike csak az egyik lehetséges mezőtípusra vonatkozik. Kövesse a meglévő DFX-függvények modelljét.

További információ az egyéni DFX-rutinok írásáról: Technical Note 53.

CDaoFieldExchange::m_nOperation

A mezőcsere-objektumhoz társított CDaoRecordset objektumon végrehajtandó műveletet azonosítja.

Megjegyzések

Az CDaoFieldExchange objektum számos különböző DFX-művelet kontextusát biztosítja a rekordhalmazon.

Megjegyzés:

Az PSEUDONULL alábbi és MarkForAddNew az SetFieldNull alábbi műveletek alatt leírt érték a Null mezők megjelölésére használt érték. A DAO rekordmezőcsere mechanizmusa (DFX) ezt az értéket használja annak meghatározására, hogy mely mezők lettek explicit módon nullként megjelölve. PSEUDONULLnincs szükség a mezőkre és COleDateTime mezőkreCOleCurrency.

A lehetséges értékek a m_nOperation következők:

Művelet Leírás
AddToParameterList Létrehozza az SQL-utasítás PARAMETERS záradékát.
AddToSelectList Létrehozza az SQL-utasítás SELECT záradékát.
BindField Az adatbázis egy mezőjét az alkalmazás memóriahelyéhez köti.
BindParam Paraméterértékeket állít be a rekordhalmaz lekérdezéséhez.
Fixup Egy mező null állapotát állítja be.
AllocCache Lefoglalja a rekordhalmaz "piszkos" mezőinek ellenőrzéséhez használt gyorsítótárat.
StoreField Menti az aktuális rekordot a gyorsítótárba.
LoadField Visszaállítja a gyorsítótárazott adattag változóit a rekordhalmazban.
FreeCache Felszabadítja a rekordhalmaz "piszkos" mezőinek ellenőrzéséhez használt gyorsítótárat.
SetFieldNull Egy mező állapotát Null értékre állítja, az értéket PEDIG PSEUDONULL értékre.
MarkForAddNew A "dirty" (piszkos) mezők megjelölése, ha nem PSEUDONULL.
MarkForEdit Megjelöli a "piszkos" mezőket, ha nem egyeznek a gyorsítótárral.
SetDirtyField A "dirty" (piszkos) jelölésű mezőértékeket állítja be.
DumpField Egy mező tartalmának memóriaképe (csak hibakeresés).
MaxDFXOperation Bemenet-ellenőrzéshez használatos.

CDaoFieldExchange::m_prs

Az objektumhoz társított CDaoFieldExchange objektumra mutató mutatót tartalmaz.

Megjegyzések

CDaoFieldExchange::SetFieldType

Hívja SetFieldType meg az CDaoRecordset osztály felülbírálását DoFieldExchange .

void SetFieldType(UINT nFieldType);

Paraméterek

nFieldType
Az enum FieldType értéke, deklarált értéke CDaoFieldExchange, amely az alábbiak egyike lehet:

  • CDaoFieldExchange::outputColumn

  • CDaoFieldExchange::param

Megjegyzések

A ClassWizard általában ezt a hívást írja Önnek. Ha saját függvényt ír, és a varázslóval írja meg a függvényt DoFieldExchange , a mezőtérképen kívül adjon hozzá hívásokat a saját függvényéhez. Ha nem használja a varázslót, nem lesz mezőtérkép. A hívás megelőzi a DFX-függvények hívásait, egyet az osztály minden egyes mezőadat-tagjához, és a mezőtípust CDaoFieldExchange::outputColumna következőképpen azonosítja.

Ha paraméterezi a rekordhalmazosztályt, DFX-hívásokat kell hozzáadnia az összes paraméteradat-taghoz (a mezőtérképen kívül), és ezeket a hívásokat meg kell előznie egy hívással SetFieldType. Adja meg az értéket CDaoFieldExchange::param. (Ehelyett használhat egy CDaoQueryDef-t , és beállíthatja annak paraméterértékeit.)

Általánosságban elmondható, hogy a mezőadat-tagokhoz vagy paraméteradat-tagokhoz társított DFX-függvényhívások minden csoportját meg kell előznie egy hívásnak SetFieldType. Az egyes hívások SetFieldType paramétere azonosítja a hívást követő SetFieldType DFX függvényhívások által képviselt adattagok típusát.

Lásd még

hierarchiadiagram
CDaoRecordset osztály