Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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::outputColumnmezőadat-tagok számára.CDaoFieldExchange::paramparamé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::outputColumnCDaoFieldExchange::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.