Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Stöder DE DAO-rutiner för postfältutbyte (DFX) som används av DAO-databasklasserna.
Anmärkning
DAO stöds via Office 2013. DAO 3.6 är den slutliga versionen och anses vara föråldrad.
Syntax
class CDaoFieldExchange
Medlemmar
Offentliga metoder
| Namn | Beskrivning |
|---|---|
| CDaoFieldExchange::IsValidOperation | Returnerar nonzero om den aktuella åtgärden är lämplig för den typ av fält som uppdateras. |
| CDaoFieldExchange::SetFieldType | Anger vilken typ av postuppsättningsdatamedlem – kolumn eller parameter – som representeras av alla efterföljande anrop till DFX-funktioner fram till nästa anrop till SetFieldType. |
Medlemmar i offentliga data
| Namn | Beskrivning |
|---|---|
| CDaoFieldExchange::m_nOperation | DFX-åtgärden som utförs av det aktuella anropet till postuppsättningens DoFieldExchange medlemsfunktion. |
| CDaoFieldExchange::m_prs | En pekare till postuppsättningen där DFX-åtgärder utförs. |
Anmärkningar
CDaoFieldExchange har ingen basklass.
Använd den här klassen om du skriver rutiner för datautbyte för anpassade datatyper. annars kommer du inte att använda den här klassen direkt. DFX utbyter data mellan fältdatamedlemmarna i ditt CDaoRecordset-objekt och motsvarande fält i den aktuella posten i datakällan. DFX hanterar utbytet i båda riktningarna, från datakällan och till datakällan. Mer information om hur du skriver anpassade DFX-rutiner finns i Technical Note 53 .
Anmärkning
DAO-databasklasserna skiljer sig från MFC-databasklasserna baserat på Open Database Connectivity (ODBC). Alla DAO-databasklassnamn har prefixet "CDao". Du kan fortfarande komma åt ODBC-datakällor med DAO-klasserna. I allmänhet är MFC-klasserna baserade på DAO mer kapabla än MFC-klasserna baserat på ODBC. De DAO-baserade klasserna kan komma åt data, bland annat via ODBC-drivrutiner, via sin egen databasmotor. De stöder också DDL-åtgärder (Data Definition Language), till exempel att lägga till tabeller via klasserna i stället för att behöva anropa DAO själv.
Anmärkning
DAO-postfältutbyte (DFX) liknar postfältutbyte (RFX) i ODBC-baserade MFC-databasklasser (CDatabase, CRecordset). Om du förstår RFX är det enkelt att använda DFX.
Ett CDaoFieldExchange objekt tillhandahåller den kontextinformation som krävs för att DAO-postfältutbyte ska ske.
CDaoFieldExchange objekt stöder ett antal åtgärder, inklusive bindningsparametrar och fältdatamedlemmar och inställning av olika flaggor för fälten i den aktuella posten. DFX-åtgärder utförs på postmängdsklassdatamedlemmar av typer som definieras av enumFieldType i CDaoFieldExchange. Möjliga FieldType-värden är:
CDaoFieldExchange::outputColumnför fältdatamedlemmar.CDaoFieldExchange::paramför parameterdatamedlemmar.
Funktionen IsValidOperation-medlem tillhandahålls för att skriva egna anpassade DFX-rutiner. Du använder SetFieldType ofta i funktionerna CDaoRecordset::D oFieldExchange . Mer information om de globala DFX-funktionerna finns i Record Field Exchange Functions. Information om hur du skriver anpassade DFX-rutiner för dina egna datatyper finns i Technical Note 53.
Arvshierarki
CDaoFieldExchange
Kravspecifikation
rubrik:afxdao.h
CDaoFieldExchange::IsValidOperation
Om du skriver en egen DFX-funktion anropar IsValidOperation du i början av funktionen för att avgöra om den aktuella åtgärden kan utföras på en viss fältdatamedlemstyp (en CDaoFieldExchange::outputColumn eller en CDaoFieldExchange::param).
BOOL IsValidOperation();
Returvärde
Nonzero om den aktuella åtgärden är lämplig för den typ av fält som uppdateras.
Anmärkningar
Vissa av de åtgärder som utförs av DFX-mekanismen gäller endast för en av de möjliga fälttyperna. Följ modellen för befintliga DFX-funktioner.
Mer information om hur du skriver anpassade DFX-rutiner finns i Technical Note 53.
CDaoFieldExchange::m_nOperation
Identifierar den åtgärd som ska utföras på det CDaoRecordset-objekt som är associerat med objektet för fältutbyte.
Anmärkningar
Objektet CDaoFieldExchange tillhandahåller kontexten för ett antal olika DFX-åtgärder på postuppsättningen.
Anmärkning
Värdet PSEUDONULL som beskrivs under MarkForAddNew åtgärderna nedan SetFieldNull är ett värde som används för att markera fälten Null. DAO-postfältutbytesmekanismen (DFX) använder det här värdet för att avgöra vilka fält som uttryckligen har markerats som Null.
PSEUDONULL krävs inte för COleDateTime och COleCurrency fält.
Möjliga värden m_nOperation för är:
| Verksamhet | Beskrivning |
|---|---|
AddToParameterList |
Skapar PARAMETER-satsen i SQL-instruktionen. |
AddToSelectList |
Skapar SELECT-satsen i SQL-instruktionen. |
BindField |
Binder ett fält i databasen till en minnesplats i ditt program. |
BindParam |
Anger parametervärden för postuppsättningens fråga. |
Fixup |
Anger null-status för ett fält. |
AllocCache |
Allokerar cachen som används för att söka efter "smutsiga" fält i postuppsättningen. |
StoreField |
Sparar den aktuella posten i cacheminnet. |
LoadField |
Återställer cachelagrade datamedlemsvariabler i postuppsättningen. |
FreeCache |
Frigör cachen som används för att söka efter "smutsiga" fält i postuppsättningen. |
SetFieldNull |
Anger ett fälts status till Null och värdet PSEUDONULL. |
MarkForAddNew |
Markerar fälten "smutsiga" om inte PSEUDONULL. |
MarkForEdit |
Markerar fälten "smutsiga" om de inte matchar cacheminnet. |
SetDirtyField |
Anger fältvärden som markerats som "smutsiga". |
DumpField |
Dumpar ett fälts innehåll (endast felsökning). |
MaxDFXOperation |
Används för indatakontroll. |
CDaoFieldExchange::m_prs
Innehåller en pekare till CDaoRecordset-objektet som är associerat med CDaoFieldExchange objektet.
Anmärkningar
CDaoFieldExchange::SetFieldType
Anropa SetFieldType åsidosättningen CDaoRecordset för klassenDoFieldExchange.
void SetFieldType(UINT nFieldType);
Parameterar
nFieldType
Ett värde för uppräkningen FieldType, deklarerat i CDaoFieldExchange, som kan vara något av följande:
CDaoFieldExchange::outputColumnCDaoFieldExchange::param
Anmärkningar
Normalt skriver ClassWizard det här anropet åt dig. Om du skriver en egen funktion och använder guiden för att skriva din DoFieldExchange funktion lägger du till anrop till din egen funktion utanför fältkartan. Om du inte använder guiden kommer det inte att finnas någon fältkarta. Anropet föregår anrop till DFX-funktioner, en för varje fältdatamedlem i klassen och identifierar fälttypen som CDaoFieldExchange::outputColumn.
Om du parameteriserar din postuppsättningsklass bör du lägga till DFX-anrop för alla parameterdatamedlemmar (utanför fältkartan) och föregå dessa anrop med ett anrop till SetFieldType. Skicka värdet CDaoFieldExchange::param. (Du kan i stället använda en CDaoQueryDef och ange dess parametervärden.)
I allmänhet måste varje grupp med DFX-funktionsanrop som är associerade med fältdatamedlemmar eller parameterdatamedlemmar föregås av ett anrop till SetFieldType.
Parametern nFieldType för varje SetFieldType anrop identifierar typen av datamedlemmar som representeras av DFX-funktionsanropen som följer anropetSetFieldType.