CDaoFieldExchange-Klasse

Unterstützt die Routinen für den DAO-Datensatzfeldaustausch (DAO record field exchange, DFX), die von den DAO-Datenbankklassen verwendet werden.

DAO wird bis Office 2013 unterstützt. DAO 3.6 ist die letzte Version und gilt als veraltet.

Syntax

class CDaoFieldExchange

Member

Öffentliche Methoden

Name Beschreibung
CDaoFieldExchange::IsValidOperation Gibt "nonzero" zurück, wenn der aktuelle Vorgang für den Typ des zu aktualisierenden Felds geeignet ist.
CDaoFieldExchange::SetFieldType Gibt den Typ des Recordset-Datenelements ( Spalte oder Parameter ) an, dargestellt durch alle nachfolgenden Aufrufe an DFX-Funktionen bis zum nächsten Aufruf von SetFieldType.

Öffentliche Datenmember

Name Beschreibung
CDaoFieldExchange::m_nOperation Der DFX-Vorgang, der vom aktuellen Aufruf der Memberfunktion des DoFieldExchange Recordsets ausgeführt wird.
CDaoFieldExchange::m_prs Ein Zeiger auf das Recordset, für das DFX-Vorgänge ausgeführt werden.

Hinweise

CDaoFieldExchange besitzt keine Basisklasse.

Verwenden Sie diese Klasse, wenn Sie Routinen für den Datenaustausch für benutzerdefinierte Datentypen schreiben. andernfalls verwenden Sie diese Klasse nicht direkt. DFX tauscht Daten zwischen den Felddatenelementen Des CDaoRecordset-Objekts und den entsprechenden Feldern des aktuellen Datensatzes in der Datenquelle aus. DFX verwaltet den Austausch in beide Richtungen, von der Datenquelle und zur Datenquelle. Weitere Informationen zum Schreiben von benutzerdefinierten DFX-Routinen finden Sie in technischem Hinweis 53 .

Hinweis

Die DAO-Datenbankklassen unterscheiden sich von den MFC-Datenbankklassen basierend auf Open Database Verbinden ivity (ODBC). Alle DAO-Datenbankklassennamen weisen das Präfix "CDao" auf. Sie können weiterhin auf ODBC-Datenquellen mit den DAO-Klassen zugreifen. Im Allgemeinen sind die MFC-Klassen, die auf DAO basieren, fähiger als die MFC-Klassen, die auf ODBC basieren. Die DAO-basierten Klassen können über ein eigenes Datenbankmodul auf Daten zugreifen, einschließlich über ODBC-Treiber. Sie unterstützen auch DDL-Vorgänge (Data Definition Language), z. B. das Hinzufügen von Tabellen über die Klassen, anstatt DAO selbst aufrufen zu müssen.

Hinweis

DAO Record Field Exchange (DFX) ist sehr ähnlich wie Datensatzfeldaustausch (RFX) in den ODBC-basierten MFC-Datenbankklassen ( CDatabase, CRecordset). Wenn Sie RFX verstehen, finden Sie es einfach, DFX zu verwenden.

Ein CDaoFieldExchange Objekt stellt die Kontextinformationen bereit, die für den Austausch von DAO-Datensatzfeldern erforderlich sind. CDaoFieldExchange Objekte unterstützen eine Reihe von Vorgängen, einschließlich Bindungsparametern und Felddatenmembern und Festlegen verschiedener Flags für die Felder des aktuellen Datensatzes. DFX-Vorgänge werden für Recordset-Klassendatenmber von Typen ausgeführt, die enumvom FieldType-ObjektCDaoFieldExchangedefiniert werden. Mögliche FieldType-Werte sind:

  • CDaoFieldExchange::outputColumn für Felddatenmber.

  • CDaoFieldExchange::param für Parameterdatenmmber.

Die IsValidOperation-Memberfunktion wird zum Schreiben eigener benutzerdefinierter DFX-Routinen bereitgestellt. Sie verwenden SetFieldType häufig in Ihren CDaoRecordset::D oFieldExchange-Funktionen . Ausführliche Informationen zu den globalen DFX-Funktionen finden Sie unter Record Field Exchange Functions. Informationen zum Schreiben von benutzerdefinierten DFX-Routinen für Ihre eigenen Datentypen finden Sie in technischem Hinweis 53.

Vererbungshierarchie

CDaoFieldExchange

Anforderungen

Header: afxdao.h

CDaoFieldExchange::IsValidOperation

Wenn Sie eine eigene DFX-Funktion schreiben, rufen Sie IsValidOperation am Anfang der Funktion auf, um zu ermitteln, ob der aktuelle Vorgang für einen bestimmten Felddatenelementtyp (a CDaoFieldExchange::outputColumn oder a CDaoFieldExchange::param) ausgeführt werden kann.

BOOL IsValidOperation();

Rückgabewert

Nonzero, wenn der aktuelle Vorgang für den Typ des zu aktualisierenden Felds geeignet ist.

Hinweise

Einige der vorgänge, die vom DFX-Mechanismus ausgeführt werden, gelten nur für einen der möglichen Feldtypen. Folgen Sie dem Modell der vorhandenen DFX-Funktionen.

Weitere Informationen zum Schreiben von benutzerdefinierten DFX-Routinen finden Sie in technischem Hinweis 53.

CDaoFieldExchange::m_nOperation

Gibt den Vorgang an, der für das CDaoRecordset -Objekt ausgeführt werden soll, das dem Feldaustauschobjekt zugeordnet ist.

Hinweise

Das CDaoFieldExchange Objekt stellt den Kontext für eine Reihe unterschiedlicher DFX-Vorgänge für das Recordset-Objekt dar.

Hinweis

Der unten unter den Vorgängen MarkForAddNew und SetFieldNull beschriebene PSEUDONULL-Wert ist ein Wert, der zum Markieren von Feldern "Null" verwendet wird. Der DAO-Datensatzfeldaustauschmechanismus (DFX) verwendet diesen Wert, um zu bestimmen, welche Felder explizit als Null markiert wurden. PSEUDONULL ist für COleDateTime - und COleCurrency-Felder nicht erforderlich.

Mögliche Werte sind m_nOperation :

Vorgang Beschreibung
AddToParameterList Erstellt die PARAMETERS-Klausel der SQL-Anweisung .
AddToSelectList Erstellt die SELECT-Klausel der SQL-Anweisung .
BindField Bindet ein Feld in der Datenbank an einen Speicherort in Ihrer Anwendung.
BindParam Legt Parameterwerte für die Abfrage des Recordsets fest.
Fixup Legt den Nullstatus für ein Feld fest.
AllocCache Weist den Cache zu, der zum Überprüfen auf "modifiziert"-Felder im Recordset verwendet wird.
StoreField Speichert den aktuellen Datensatz im Cache.
LoadField Stellt die zwischengespeicherten Datenmemmemmvariablen im Recordset wieder her.
FreeCache Gibt den Cache frei, der zum Suchen nach "modifiziert"-Feldern im Recordset verwendet wird.
SetFieldNull Legt den Status eines Felds auf Null und Wert auf PSEUDONULL fest.
MarkForAddNew Markiert Felder "modifiziert", wenn nicht PSEUDONULL.
MarkForEdit Markiert Felder "modifiziert", wenn sie nicht mit dem Cache übereinstimmen.
SetDirtyField Legt Feldwerte fest, die als "modifiziert" gekennzeichnet sind.
DumpField Dumps a field's contents (debug only).
MaxDFXOperation Wird für die Eingabeüberprüfung verwendet.

CDaoFieldExchange::m_prs

Enthält einen Zeiger auf das dem Objekt zugeordnete CDaoFieldExchange CDaoRecordset -Objekt.

Hinweise

CDaoFieldExchange::SetFieldType

Rufen Sie die Außerkraftsetzung SetFieldType Ihres CDaoRecordset Kurses DoFieldExchange an.

void SetFieldType(UINT nFieldType);

Parameter

nFieldType
Ein Wert der Enumeration FieldType, deklariert in CDaoFieldExchange, die eine der folgenden Sein kann:

  • CDaoFieldExchange::outputColumn

  • CDaoFieldExchange::param

Hinweise

Normalerweise schreibt ClassWizard diesen Aufruf für Sie. Wenn Sie ihre eigene Funktion schreiben und den Assistenten zum Schreiben Ihrer DoFieldExchange Funktion verwenden, fügen Sie Aufrufe ihrer eigenen Funktion außerhalb der Feldzuordnung hinzu. Wenn Sie den Assistenten nicht verwenden, gibt es keine Feldzuordnung. Der Aufruf steht vor Aufrufen von DFX-Funktionen, eine für jedes Felddatenmemm ihrer Klasse und identifiziert den Feldtyp als CDaoFieldExchange::outputColumn.

Wenn Sie Ihre Recordsetklasse parametrisieren, sollten Sie DFX-Aufrufe für alle Parameterdatenmember (außerhalb der Feldzuordnung) hinzufügen und diesen Aufrufen einen Aufruf voranstellen.SetFieldType Übergeben Sie den Wert CDaoFieldExchange::param. (Sie können stattdessen eine CDaoQueryDef und Festlegen der Parameterwerte.)

Im Allgemeinen müssen jeder Gruppe von DFX-Funktionsaufrufen, die Felddatenmembern zugeordnet sind, oder Parameterdatenmembern ein Aufruf SetFieldTypevorausgehen. Der nFieldType-Parameter jedes SetFieldType Aufrufs identifiziert den Typ der Datenmmber, die durch die DFX-Funktionsaufrufe dargestellt werden, die dem SetFieldType Aufruf folgen.

Siehe auch

Hierarchiediagramm
CDaoRecordset-Klasse