CDaoFieldExchange-Klasse
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 enum
vom FieldType-Objekt CDaoFieldExchange
definiert 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 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 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 SetFieldType
vorausgehen. Der nFieldType-Parameter jedes SetFieldType
Aufrufs identifiziert den Typ der Datenmmber, die durch die DFX-Funktionsaufrufe dargestellt werden, die dem SetFieldType
Aufruf folgen.