Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Unterstützt die Routinen für den DAO-Datensatzfeldaustausch (DAO record field exchange, DFX), die von den DAO-Datenbankklassen verwendet werden.
Hinweis
DAO wird bis Office 2013 unterstützt. DAO 3.6 ist die endgültige 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 Connectivity (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::outputColumnfür Felddatenmber.CDaoFieldExchange::paramfü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
Kopfball: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 PSEUDONULL unter den MarkForAddNew folgenden Und SetFieldNull Vorgängen beschriebene Wert ist ein Wert, der zum Markieren von Feldern mit 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 felder COleCurrency 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 "schmutzige" 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 Überprüfen auf "schmutzige" Felder im Recordset verwendet wird. |
SetFieldNull |
Legt den Status eines Felds auf Null und Wert auf PSEUDONULL fest. |
MarkForAddNew |
Markiert Felder "schmutzig", wenn nicht PSEUDONULL. |
MarkForEdit |
Markiert Felder "dirty", wenn sie nicht mit dem Cache übereinstimmen. |
SetDirtyField |
Legt Feldwerte fest, die als "dirty" 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 -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::outputColumnCDaoFieldExchange::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.