Dela via


CDaoFieldExchange-klass

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::outputColumn för fältdatamedlemmar.

  • CDaoFieldExchange::param fö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::outputColumn

  • CDaoFieldExchange::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.

Se även

hierarkidiagram
CDaoRecordset-klass