Freigeben über


Funktionen für den Datensatzfeldaustausch

Dieses Thema enthält die Datensatzfeldaustausch (RFX, Bulk-RFXund DFX)-Funktionen, mit denen die Übertragung von Daten zwischen einem Recordset-Objekt und den zugehörigen Datenquellen automatisiert und andere Datenvorgänge ausgeführt werden.

Wenn Sie die ODBC-basierten Klassen verwenden und einen Massenzeilenabruf implementiert haben, müssen Sie die DoBulkFieldExchange -Memberfunktion des CRecordset manuell überschreiben, indem Sie die Bulk-RFX-Funktionen für jedes Datenelement aufrufen, das einer Datenquellspalte entspricht.

Wenn Sie das Abrufen von Massenzeilen in den ODBC-basierten Klassen nicht implementiert haben oder wenn Sie die DAO-basierten Klassen (veraltet) verwenden, überschreibt ClassWizard die DoFieldExchange Memberfunktion von CRecordset oder CDaoRecordset durch Aufrufen der RFX-Funktionen (für ODBC-Klassen) oder der DFX-Funktionen (für DAO-Klassen) für jedes Felddatenelement in Ihrem Recordset.

Die Datensatzfeldaustausch-Funktionen übertragen jedes Mal Daten, wenn das Framework DoFieldExchange oder DoBulkFieldExchangeaufruft. Jede Funktion überträgt einen bestimmten Datentyp.

Weitere Informationen über die Verwendung dieser Funktionen finden Sie in den Artikeln Datensatzfeldaustausch: Funktionsweise von RFX. Weitere Informationen über das gesammelte Abrufen von Zeilen finden Sie im Artikel Recordset: Abrufen von Datensätzen in einer Sammeloperation (ODBC).

Für Datenspalten, die Sie dynamisch binden, können Sie auch die RFX- oder DFX-Funktionen selbst aufrufen, wie in den Artikeln Recordset: Dynamisches Binden von Spalten (ODBC)beschrieben. Darüber hinaus können Sie Ihre eigenen benutzerdefinierten RFX- oder DFX-Routinen schreiben, wie im technischen Hinweis 43 (für ODBC) und im technischen Hinweis 53 (für DAO) erläutert.

Ein Beispiel für RFX- und Bulk RFX-Funktionen, wie sie in den DoFieldExchange funktionen DoBulkFieldExchange angezeigt werden, finden Sie unter RFX_Text und [RFX_Text_Bulk]#rfx_text_bulk). DFX-Funktionen sind den RFX-Funktionen sehr ähnlich.

RFX-Funktionen (ODBC)

Name Beschreibung
RFX_Binary Überträgt Byte-Arrays vom Typ CByteArray.
RFX_Bool Überträgt boolesche Daten.
RFX_Byte Überträgt ein einzelnes Byte an Daten.
RFX_Date Überträgt Zeit- und Datumsdaten mit CTime oder TIMESTAMP_STRUCT.
RFX_Double Überträgt Gleitkommazahl mit doppelter Genauigkeit.
RFX_Int Überträgt Ganzzahldaten.
RFX_Long Überträgt lange Ganzzahldaten.
RFX_LongBinary Überträgt BLOB-Daten (Binary Large Object) mit einem Objekt der CLongBinary Klasse.
RFX_Single Überträgt Gleitkommadaten.
RFX_Text Überträgt Zeichenfolgendaten.

Bulk-RFX-Funktionen (ODBC)

Name Beschreibung
RFX_Binary_Bulk Überträgt Arrays von Bytedaten.
RFX_Bool_Bulk Überträgt Arrays von booleschen Daten.
RFX_Byte_Bulk Überträgt Arrays von Einzelbytes.
RFX_Date_Bulk Überträgt Arrays von Daten des Typs TIMESTAMP_STRUCT.
RFX_Double_Bulk Überträgt Arrays von Gleitkommadaten mit doppelter Genauigkeit.
RFX_Int_Bulk Überträgt Arrays von Ganzzahldaten.
RFX_Long_Bulk Überträgt Arrays von langen Ganzzahldaten.
RFX_Single_Bulk Überträgt Arrays von Gleitkommadaten.
RFX_Text_Bulk Überträgt Arrays von Daten des Typs LPSTR.

DFX-Funktionen (DAO)

Name Beschreibung
DFX_Binary Überträgt Byte-Arrays vom Typ CByteArray.
DFX_Bool Überträgt boolesche Daten.
DFX_Byte Überträgt ein einzelnes Byte an Daten.
DFX_Currency Überträgt Währungsdaten vom Typ COleCurrency.
DFX_DateTime Überträgt Datums- und Uhrzeitdaten vom Typ COleDateTime.
DFX_Double Überträgt Gleitkommazahl mit doppelter Genauigkeit.
DFX_Long Überträgt lange Ganzzahldaten.
DFX_LongBinary Überträgt BLOB-Daten (Binary Large Object) mit einem Objekt der CLongBinary -Klasse. Bei DAO wird empfohlen, dass Sie stattdessen DFX_Binary verwenden.
DFX_Short Überträgt kurze Ganzzahldaten.
DFX_Single Überträgt Gleitkommadaten.
DFX_Text Überträgt Zeichenfolgendaten.

=============================================

RFX_Binary

Überträgt Arrays von Bytes zwischen den Felddatenelementen eines CRecordset Objekts und den Spalten eines Datensatzes in der Datenquelle des ODBC-Typs SQL_BINARY, SQL_VARBINARY oder SQL_LONGVARBINARY.

Syntax

void RFX_Binary(
   CFieldExchange* pFX,
   const char* szName,
   CByteArray& value,
   int nMaxLength = 255);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen zu den Vorgängen, die ein CFieldExchange Objekt angeben kann, finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ "CByteArray" aus dem angegebenen Datenelement entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

nMaxLength
Die maximal zulässige Länge der zu übertragenden Zeichenfolge oder des Arrays. Der Standardwert von nMaxLength ist 255. Zulässige Werte sind 1 bis INT_MAX. Das Framework weist diesen Speicherplatz für die Daten zu. Um eine optimale Leistung zu erzielen, übergeben Sie einen Wert, der groß genug ist, um das von Ihnen erwartete größte Datenelement zu berücksichtigen.

Hinweise

Daten in der Datenquelle dieser Typen werden dem Und vom Typ CByteArray im Recordset zugeordnet.

Beispiel

Siehe RFX_Text.

Anforderungen

Header: afxdb.h

RFX_Bool

Überträgt boolesche Daten zwischen den Felddatenmembern eines CRecordset Objekts und den Spalten eines Datensatzes in der Datenquelle des ODBC-Typs SQL_BIT.

Syntax

void RFX_Bool(
   CFieldExchange* pFX,
   const char* szName,
   BOOL& value);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen zu den Vorgängen, die ein CFieldExchange Objekt angeben kann, finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ BOOL aus dem angegebenen Datenmemm entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

Beispiel

Siehe RFX_Text.

Anforderungen

Header: afxdb.h

RFX_Byte

Überträgt einzelne Bytes zwischen den Felddatenelementen eines CRecordset Objekts und den Spalten eines Datensatzes in der Datenquelle des ODBC-Typs SQL_TINYINT.

Syntax

void RFX_Byte(
   CFieldExchange* pFX,
   const char* szName,
   BYTE& value);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen zu den Vorgängen, die ein CFieldExchange Objekt angeben kann, finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ BYTE aus dem angegebenen Datenmemm entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

Beispiel

Siehe RFX_Text.

Anforderungen

Header: afxdb.h

RFX_Date

Überträgt CTime oder TIMESTAMP_STRUCT Daten zwischen den Felddatenmembern eines CRecordset Objekts und den Spalten eines Datensatzes in der Datenquelle des ODBC-Typs SQL_DATE, SQL_TIME oder SQL_TIMESTAMP.

Syntax

void RFX_Date(
   CFieldExchange* pFX,
   const char* szName,
   CTime& value);

void RFX_Date(
   CFieldExchange* pFX,
   const char* szName,
   TIMESTAMP_STRUCT& value);

void RFX_Date(
   CFieldExchange* pFX,
   const char* szName,
   COleDateTime& value);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen zu den Vorgängen, die ein CFieldExchange Objekt angeben kann, finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert; der zu übertragende Wert. Die verschiedenen Versionen der Funktion nehmen unterschiedliche Datentypen für wert:

Die erste Version der Funktion verwendet einen Verweis auf ein CTime-Objekt . Bei einer Übertragung von Recordset zu Datenquelle wird dieser Wert aus dem angegebenen Datenelement übernommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

Die zweite Version der Funktion verwendet einen Verweis auf eine TIMESTAMP_STRUCT Struktur. Sie müssen diese Struktur vor dem Aufruf selbst einrichten. Für diese Version ist weder die Unterstützung von Dialogdatenaustausch (Dialog Data Exchange, DDX) noch der Code-Assistent verfügbar. Die dritte Version der Funktion funktioniert ähnlich wie die erste Version, mit der Ausnahme, dass ein Verweis auf ein COleDateTime-Objekt verwendet wird.

Hinweise

Die CTime Version der Funktion erzwingt den Aufwand einiger Zwischenverarbeitungen und weist einen etwas begrenzten Bereich auf. Wenn Sie eine dieser Faktoren zu begrenzen finden, verwenden Sie die zweite Version der Funktion. Beachten Sie jedoch den Mangel an Code-Assistenten und DDX-Unterstützung und die Anforderung, dass Sie die Struktur selbst einrichten.

Beispiel

Siehe RFX_Text.

Anforderungen

Header: afxdb.h

RFX_Double

Überträgt doppelte Float-Daten zwischen den Felddatenmembern eines CRecordset Objekts und den Spalten eines Datensatzes in der Datenquelle des ODBC-Typs SQL_DOUBLE.

Syntax

void RFX_Double(
   CFieldExchange* pFX,
   const char* szName,
   double& value);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen zu den Vorgängen, die ein CFieldExchange Objekt angeben kann, finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ double"" aus dem angegebenen Datenelement entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

Beispiel

Siehe RFX_Text.

Anforderungen

Header: afxdb.h

RFX_Int

Überträgt ganzzahlige Daten zwischen den Felddatenmembern eines CRecordset Objekts und den Spalten eines Datensatzes in der Datenquelle des ODBC-Typs SQL_SMALLINT.

Syntax

void RFX_Int(
   CFieldExchange* pFX,
   const char* szName,
   int& value);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen zu den Vorgängen, die ein CFieldExchange Objekt angeben kann, finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ int"" aus dem angegebenen Datenelement entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

Beispiel

Siehe RFX_Text.

Anforderungen

Header: afxdb.h

RFX_Long

Überträgt lange ganzzahlige Daten zwischen den Felddatenelementen eines CRecordset Objekts und den Spalten eines Datensatzes in der Datenquelle des ODBC-Typs SQL_INTEGER.

Syntax

void RFX_Long(
   CFieldExchange* pFX,
   const char* szName,
   LONG&
value );

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen zu den Vorgängen, die ein CFieldExchange Objekt angeben kann, finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ long"" aus dem angegebenen Datenelement entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

Beispiel

Siehe RFX_Text.

Anforderungen

Header: afxdb.h

RFX_LongBinary

Überträgt BINÄRE BLOB-Daten (Binary Large Object) mithilfe der Klasse CLongBinary zwischen den Felddatenmembern eines CRecordset Objekts und den Spalten eines Datensatzes in der Datenquelle des ODBC-Typs SQL_LONGVARBINARY oder SQL_LONGVARCHAR.

Syntax

void RFX_LongBinary(
   CFieldExchange* pFX,
   const char* szName,
   CLongBinary& value);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen zu den Vorgängen, die ein CFieldExchange Objekt angeben kann, finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ CLongBinary"" aus dem angegebenen Datenelement entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

Beispiel

Siehe RFX_Text.

Anforderungen

Header: afxdb.h

RFX_Single

Überträgt Gleitkommadaten zwischen den Felddatenmembern eines CRecordset Objekts und den Spalten eines Datensatzes in der Datenquelle des ODBC-Typs SQL_REAL.

Syntax

void RFX_Single(
   CFieldExchange* pFX,
   const char* szName,
   float& value);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen zu den Vorgängen, die ein CFieldExchange Objekt angeben kann, finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ float"" aus dem angegebenen Datenelement entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

Beispiel

Siehe RFX_Text.

Anforderungen

Header: afxdb.h

RFX_Text

Überträgt CString Daten zwischen den Felddatenmembern eines CRecordset Objekts und Spalten eines Datensatzes in der Datenquelle des ODBC-Typs SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL oder SQL_NUMERIC.

Syntax

void RFX_Text(
   CFieldExchange* pFX,
   const char* szName,
   CString& value,
   int nMaxLength = 255,
   int nColumnType = SQL_VARCHAR,
   short nScale = 0);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen zu den Vorgängen, die ein CFieldExchange Objekt angeben kann, finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ CString"" aus dem angegebenen Datenelement entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

nMaxLength
Die maximal zulässige Länge der zu übertragenden Zeichenfolge oder des Arrays. Der Standardwert von nMaxLength ist 255. Zulässige Werte sind 1 bis INT_MAX). Das Framework weist diesen Speicherplatz für die Daten zu. Um eine optimale Leistung zu erzielen, übergeben Sie einen Wert, der groß genug ist, um das von Ihnen erwartete größte Datenelement zu berücksichtigen.

nColumnType
Wird hauptsächlich für Parameter verwendet. Eine ganze Zahl, die den Datentyp des Parameters angibt. Der Typ ist ein ODBC-Datentyp des Formulars SQL_XXX.

nScale
Gibt die Skalierung für Werte des ODBC-Typs SQL_DECIMAL oder SQL_NUMERIC an. nScale ist nur hilfreich, wenn Parameterwerte festgelegt werden. Weitere Informationen finden Sie im Thema "Genauigkeit, Skalierung, Länge und Anzeigegröße" in Anhang D der ODBC SDK-Programmierreferenz.

Hinweise

Daten in der Datenquelle aller dieser Typen werden dem Datensatz zugeordnet und aus CString dem Recordset.

Beispiel

Dieses Beispiel zeigt mehrere Aufrufe an RFX_Text. Beachten Sie auch die beiden Aufrufe von CFieldExchange::SetFieldType. Für Parameter müssen Sie den Aufruf SetFieldType und dessen RFX-Aufruf schreiben. Der Ausgabespaltenaufruf und die zugehörigen RFX-Aufrufe werden normalerweise von einem Code-Assistenten geschrieben.

void CCustomer::DoFieldExchange(CFieldExchange* pFX)
{
   pFX->SetFieldType(CFieldExchange::outputColumn);
   // Macros such as RFX_Text() and RFX_Int() are dependent on the
   // type of the member variable, not the type of the field in the database.
   // ODBC will try to automatically convert the column value to the requested type
   RFX_Long(pFX, _T("[CustomerID]"), m_CustomerID);
   RFX_Text(pFX, _T("[ContactFirstName]"), m_ContactFirstName);
   RFX_Text(pFX, _T("[PostalCode]"), m_PostalCode);
   RFX_Text(pFX, _T("[L_Name]"), m_L_Name);
   RFX_Long(pFX, _T("[BillingID]"), m_BillingID);

   pFX->SetFieldType(CFieldExchange::inputParam);
   RFX_Text(pFX, _T("Param"), m_strParam);
}

Anforderungen

Header: afxdb.h

RFX_Binary_Bulk

Überträgt mehrere Bytedatenzeilen aus einer Spalte einer ODBC-Datenquelle an ein entsprechendes Array in einem CRecordsetabgeleiteten Objekt.

Syntax

void RFX_Binary_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   BYTE** prgByteVals,
   long** prgLengths,
   int nMaxLength);

Parameter

Pfx
Ein Zeiger auf ein CFieldExchange-Objekt . Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

prgByteVals
Ein Zeiger auf ein Array von BYTE-Werten. Dieses Array speichert die Daten, die von der Datenquelle in das Recordset übertragen werden sollen.

prgLengths
Ein Zeiger auf ein Array mit langen Ganzzahlen. Dieses Array speichert die Länge in Byte jedes Werts im Array, auf das von prgByteVals verwiesen wird. Beachten Sie, dass der Wert SQL_NULL_DATA gespeichert wird, wenn das entsprechende Datenelement einen Null-Wert enthält. Weitere Informationen finden Sie in der ODBC-API-Funktion SQLBindCol in der ODBC SDK-Programmierreferenz.

nMaxLength
Die maximale zulässige Länge der im Array gespeicherten Werte, auf die von prgByteVals verwiesen wird. Um sicherzustellen, dass Daten nicht abgeschnitten werden, übergeben Sie einen Wert, der groß genug ist, um das größte zu erwartende Datenelement aufzunehmen.

Hinweise

Die Datenquellenspalte kann über einen ODBC-Typ von SQL_BINARY, SQL_VARBINARY oder SQL_LONGVARBINARY verfügen. Das Recordset muss ein Felddatenmemm des Typzeigers auf BYTE definieren.

Wenn Sie prgByteVals und prgLengths auf NULL initialisieren, werden die Arrays, auf die sie verweisen, automatisch zugewiesen, wobei die Größe der Rowsetgröße entspricht.

Hinweis

Massendatensatzfeldaustausch überträgt nur Daten aus der Datenquelle an das Recordset-Objekt. Damit Das Recordset aktualisiert werden kann, müssen Sie die ODBC-API-Funktion SQLSetPosverwenden.

Weitere Informationen finden Sie in den Artikeln Recordset: Fetching Records in Bulk (ODBC) und Record Field Exchange (RFX).

Beispiel

Siehe RFX_Text_Bulk.

Anforderungen

Header: afxdb.h

RFX_Bool_Bulk

Überträgt mehrere Zeilen boolescher Daten aus einer Spalte einer ODBC-Datenquelle an ein entsprechendes Array in einem CRecordsetabgeleiteten Objekt.

Syntax

void RFX_Bool_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   BOOL** prgBoolVals,
   long** prgLengths);

Parameter

Pfx
Ein Zeiger auf ein CFieldExchange-Objekt . Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

prgBoolVals
Ein Zeiger auf ein Array von BOOL-Werten. Dieses Array speichert die Daten, die von der Datenquelle in das Recordset übertragen werden sollen.

prgLengths
Ein Zeiger auf ein Array mit langen Ganzzahlen. Dieses Array speichert die Länge in Byte jedes Werts im Array, auf das von prgBoolVals verwiesen wird. Beachten Sie, dass der Wert SQL_NULL_DATA gespeichert wird, wenn das entsprechende Datenelement einen Null-Wert enthält. Weitere Informationen finden Sie in der ODBC-API-Funktion SQLBindCol in der ODBC SDK-Programmierreferenz.

Hinweise

Die Datenquellenspalte muss über einen ODBC-Typ von SQL_BIT verfügen. Das Recordset muss ein Felddatenmemm des Typzeigers auf BOOL definieren.

Wenn Sie prgBoolVals und prgLengths in NULL initialisieren, werden die Arrays, auf die sie verweisen, automatisch zugewiesen, wobei die Größe der Rowsetgröße entspricht.

Hinweis

Massendatensatzfeldaustausch überträgt nur Daten aus der Datenquelle an das Recordset-Objekt. Damit Das Recordset aktualisiert werden kann, müssen Sie die ODBC-API-Funktion SQLSetPosverwenden.

Weitere Informationen finden Sie in den Artikeln Recordset: Fetching Records in Bulk (ODBC) und Record Field Exchange (RFX).

Beispiel

Siehe RFX_Text_Bulk.

Anforderungen

Header: afxdb.h

RFX_Byte_Bulk

Überträgt mehrere Zeilen einzelner Bytes aus einer Spalte einer ODBC-Datenquelle in ein entsprechendes Array in einem CRecordsetabgeleiteten Objekt.

Syntax

void RFX_Byte_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   BYTE** prgByteVals,
   long** prgLengths);

Parameter

Pfx
Ein Zeiger auf ein CFieldExchange-Objekt . Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

prgByteVals
Ein Zeiger auf ein Array von BYTE-Werten. Dieses Array speichert die Daten, die von der Datenquelle in das Recordset übertragen werden sollen.

prgLengths
Ein Zeiger auf ein Array mit langen Ganzzahlen. Dieses Array speichert die Länge in Byte jedes Werts im Array, auf das von prgByteVals verwiesen wird. Beachten Sie, dass der Wert SQL_NULL_DATA gespeichert wird, wenn das entsprechende Datenelement einen Null-Wert enthält. Weitere Informationen finden Sie in der ODBC-API-Funktion SQLBindCol in der ODBC SDK-Programmierreferenz.

Hinweise

Die Datenquellenspalte muss über einen ODBC-Typ von SQL_TINYINT verfügen. Das Recordset muss ein Felddatenmemm des Typzeigers auf BYTE definieren.

Wenn Sie prgByteVals und prgLengths auf NULL initialisieren, werden die Arrays, auf die sie verweisen, automatisch zugewiesen, wobei die Größe der Rowsetgröße entspricht.

Hinweis

Massendatensatzfeldaustausch überträgt nur Daten aus der Datenquelle an das Recordset-Objekt. Damit Das Recordset aktualisiert werden kann, müssen Sie die ODBC-API-Funktion SQLSetPosverwenden.

Weitere Informationen finden Sie in den Artikeln Recordset: Fetching Records in Bulk (ODBC) und Record Field Exchange (RFX).

Beispiel

Siehe RFX_Text_Bulk.

Anforderungen

Header: afxdb.h

RFX_Date_Bulk

Überträgt mehrere Zeilen von TIMESTAMP_STRUCT Daten aus einer Spalte einer ODBC-Datenquelle an ein entsprechendes Array in einem CRecordsetabgeleiteten Objekt.

Syntax

void RFX_Date_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   TIMESTAMP_STRUCT** prgTSVals,
   long** prgLengths);

Parameter

Pfx
Ein Zeiger auf ein CFieldExchange-Objekt . Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

prgTSVals
Ein Zeiger auf ein Array mit TIMESTAMP_STRUCT Werten. Dieses Array speichert die Daten, die von der Datenquelle in das Recordset übertragen werden sollen. Weitere Informationen zum TIMESTAMP_STRUCT Datentyp finden Sie im Thema "C-Datentypen" in Anhang D der ODBC SDK-Programmierreferenz.

prgLengths
Ein Zeiger auf ein Array mit langen Ganzzahlen. Dieses Array speichert die Länge in Byte jedes Werts im Array, auf das von prgTSVals verwiesen wird. Beachten Sie, dass der Wert SQL_NULL_DATA gespeichert wird, wenn das entsprechende Datenelement einen Null-Wert enthält. Weitere Informationen finden Sie in der ODBC-API-Funktion SQLBindCol in der ODBC SDK-Programmierreferenz.

Hinweise

Die Datenquellenspalte kann über einen ODBC-Typ von SQL_DATE, SQL_TIME oder SQL_TIMESTAMP verfügen. Das Recordset muss ein Felddatenmemm des Typzeigers auf TIMESTAMP_STRUCT definieren.

Wenn Sie prgTSVals und prgLengths auf NULL initialisieren, werden die Arrays, auf die sie verweisen, automatisch zugewiesen, wobei die Größe der Rowsetgröße entspricht.

Hinweis

Massendatensatzfeldaustausch überträgt nur Daten aus der Datenquelle an das Recordset-Objekt. Damit Das Recordset aktualisiert werden kann, müssen Sie die ODBC-API-Funktion SQLSetPosverwenden.

Weitere Informationen finden Sie in den Artikeln Recordset: Fetching Records in Bulk (ODBC) und Record Field Exchange (RFX).

Beispiel

Siehe RFX_Text_Bulk.

Anforderungen

Header: afxdb.h

RFX_Double_Bulk

Überträgt mehrere Zeilen mit doppelter Genauigkeit, Gleitkommadaten aus einer Spalte einer ODBC-Datenquelle an ein entsprechendes Array in einem CRecordsetabgeleiteten Objekt.

Syntax

void RFX_Double_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   double** prgDblVals,
   long** prgLengths);

Parameter

Pfx
Ein Zeiger auf ein CFieldExchange-Objekt . Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

prgDblVals
Ein Zeiger auf ein Array von double Werten. Dieses Array speichert die Daten, die von der Datenquelle in das Recordset übertragen werden sollen.

prgLengths
Ein Zeiger auf ein Array mit langen Ganzzahlen. Dieses Array speichert die Länge in Byte jedes Werts im Array, auf das von prgDblVals verwiesen wird. Beachten Sie, dass der Wert SQL_NULL_DATA gespeichert wird, wenn das entsprechende Datenelement einen Null-Wert enthält. Weitere Informationen finden Sie in der ODBC-API-Funktion SQLBindCol in der ODBC SDK-Programmierreferenz.

Hinweise

Die Datenquellenspalte muss über einen ODBC-Typ von SQL_DOUBLE verfügen. Das Recordset muss ein Felddatenmemm des Typzeigers definieren.double

Wenn Sie prgDblVals und prgLengths auf NULL initialisieren, werden die Arrays, auf die sie verweisen, automatisch zugewiesen, wobei die Größe der Rowsetgröße entspricht.

Hinweis

Massendatensatzfeldaustausch überträgt nur Daten aus der Datenquelle an das Recordset-Objekt. Damit Das Recordset aktualisiert werden kann, müssen Sie die ODBC-API-Funktion SQLSetPosverwenden.

Weitere Informationen finden Sie in den Artikeln Recordset: Fetching Records in Bulk (ODBC) und Record Field Exchange (RFX).

Beispiel

Siehe RFX_Text_Bulk.

Anforderungen

Header: afxdb.h

RFX_Int_Bulk

Überträgt ganzzahlige Daten zwischen den Felddatenmembern eines CRecordset Objekts und den Spalten eines Datensatzes in der Datenquelle des ODBC-Typs SQL_SMALLINT.

Syntax

void RFX_Int(
   CFieldExchange* pFX,
   const char* szName,
   int& value);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen zu den Vorgängen, die ein CFieldExchange Objekt angeben kann, finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ int"" aus dem angegebenen Datenelement entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

Beispiel

Siehe RFX_Text.

Anforderungen

Header: afxdb.h

RFX_Long_Bulk

Überträgt mehrere Zeilen mit langen ganzzahligen Daten aus einer Spalte einer ODBC-Datenquelle an ein entsprechendes Array in einem CRecordsetabgeleiteten Objekt.

Syntax

void RFX_Long_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   long** prgLongVals,
   long** prgLengths);

Parameter

Pfx
Ein Zeiger auf ein CFieldExchange-Objekt . Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

prgLongVals
Ein Zeiger auf ein Array mit langen Ganzzahlen. Dieses Array speichert die Daten, die von der Datenquelle in das Recordset übertragen werden sollen.

prgLengths
Ein Zeiger auf ein Array mit langen Ganzzahlen. Dieses Array speichert die Länge in Byte jedes Werts im Array, auf das von prgLongVals verwiesen wird. Beachten Sie, dass der Wert SQL_NULL_DATA gespeichert wird, wenn das entsprechende Datenelement einen Null-Wert enthält. Weitere Informationen finden Sie in der ODBC-API-Funktion SQLBindCol in der ODBC SDK-Programmierreferenz.

Hinweise

Die Datenquellenspalte muss über einen ODBC-Typ von SQL_INTEGER verfügen. Das Recordset muss ein Felddatenmemm des Typzeigers definieren.long

Wenn Sie prgLongVals und prgLengths in NULL initialisieren, werden die Arrays, auf die sie verweisen, automatisch zugewiesen, wobei die Größe der Rowsetgröße entspricht.

Hinweis

Massendatensatzfeldaustausch überträgt nur Daten aus der Datenquelle an das Recordset-Objekt. Damit Das Recordset aktualisiert werden kann, müssen Sie die ODBC-API-Funktion SQLSetPosverwenden.

Weitere Informationen finden Sie in den Artikeln Recordset: Fetching Records in Bulk (ODBC) und Record Field Exchange (RFX).

Beispiel

Siehe RFX_Text_Bulk.

Anforderungen

Header: afxdb.h

RFX_Single_Bulk

Überträgt mehrere Zeilen mit Gleitkommadaten aus einer Spalte einer ODBC-Datenquelle an ein entsprechendes Array in einem CRecordsetabgeleiteten Objekt.

Syntax

void RFX_Single_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   float** prgFltVals,
   long** prgLengths);

Parameter

Pfx
Ein Zeiger auf ein CFieldExchange-Objekt . Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

prgFltVals
Ein Zeiger auf ein Array von float Werten. Dieses Array speichert die Daten, die von der Datenquelle in das Recordset übertragen werden sollen.

prgLengths
Ein Zeiger auf ein Array mit langen Ganzzahlen. Dieses Array speichert die Länge in Byte jedes Werts im Array, auf das von prgFltVals verwiesen wird. Beachten Sie, dass der Wert SQL_NULL_DATA gespeichert wird, wenn das entsprechende Datenelement einen Null-Wert enthält. Weitere Informationen finden Sie in der ODBC-API-Funktion SQLBindCol in der ODBC SDK-Programmierreferenz.

Hinweise

Die Datenquellenspalte muss über einen ODBC-Typ von SQL_REAL verfügen. Das Recordset muss ein Felddatenmemm des Typzeigers definieren.float

Wenn Sie prgFltVals und prgLengths in NULL initialisieren, werden die Arrays, auf die sie verweisen, automatisch zugewiesen, wobei die Größe der Rowsetgröße entspricht.

Hinweis

Massendatensatzfeldaustausch überträgt nur Daten aus der Datenquelle an das Recordset-Objekt. Damit Das Recordset aktualisiert werden kann, müssen Sie die ODBC-API-Funktion SQLSetPosverwenden.

Weitere Informationen finden Sie in den Artikeln Recordset: Fetching Records in Bulk (ODBC) und Record Field Exchange (RFX).

Beispiel

Siehe RFX_Text_Bulk.

Anforderungen

Header: afxdb.h

RFX_Text_Bulk

Überträgt mehrere Zeilen von Zeichendaten aus einer Spalte einer ODBC-Datenquelle an ein entsprechendes Array in einem CRecordsetabgeleiteten Objekt.

Syntax

void RFX_Text_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   LPSTR* prgStrVals,
   long** prgLengths,
   int nMaxLength);

Parameter

Pfx
Ein Zeiger auf ein CFieldExchange-Objekt . Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion. Weitere Informationen finden Sie im Artikel Record Field Exchange: How RFX Works.

szName
Der Name einer Datenspalte.

prgStrVals
Ein Zeiger auf ein Array von LPSTR-Werten. Dieses Array speichert die Daten, die von der Datenquelle in das Recordset übertragen werden sollen. Beachten Sie, dass diese Werte mit der aktuellen Version von ODBC nicht Unicode sein können.

prgLengths
Ein Zeiger auf ein Array mit langen Ganzzahlen. Dieses Array speichert die Länge in Byte jedes Werts im Array, auf das von prgStrVals verwiesen wird. Diese Länge schließt das Null-Beendigungszeichen aus. Beachten Sie, dass der Wert SQL_NULL_DATA gespeichert wird, wenn das entsprechende Datenelement einen Null-Wert enthält. Weitere Informationen finden Sie in der ODBC-API-Funktion SQLBindCol in der ODBC SDK-Programmierreferenz.

nMaxLength
Die maximale zulässige Länge der im Array gespeicherten Werte, auf die prgStrVals verweist, einschließlich des Null-Beendigungszeichens. Um sicherzustellen, dass Daten nicht abgeschnitten werden, übergeben Sie einen Wert, der groß genug ist, um das größte zu erwartende Datenelement aufzunehmen.

Hinweise

Die Datenquellenspalte kann über einen ODBC-Typ von SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL oder SQL_NUMERIC verfügen. Das Recordset muss ein Felddatenelement vom Typ LPSTR definieren.

Wenn Sie prgStrVals und prgLengths auf NULL initialisieren, werden die Arrays, auf die sie verweisen, automatisch zugewiesen, wobei die Größe der Rowsetgröße entspricht.

Hinweis

Massendatensatzfeldaustausch überträgt nur Daten aus der Datenquelle an das Recordset-Objekt. Damit Das Recordset aktualisiert werden kann, müssen Sie die ODBC-API-Funktion SQLSetPosverwenden.

Weitere Informationen finden Sie in den Artikeln Recordset: Fetching Records in Bulk (ODBC) und Record Field Exchange (RFX).

Beispiel

Sie müssen Anrufe manuell in Ihre DoBulkFieldExchange Außerkraftsetzung schreiben. Dieses Beispiel zeigt einen Aufruf an RFX_Text_Bulk, sowie einen Anruf an RFX_Long_Bulk, für die Datenübertragung. Diesen Aufrufen wird ein Aufruf von CFieldExchange::SetFieldType vorangestellt. Beachten Sie, dass Sie für Parameter die RFX-Funktionen anstelle der Massen-RFX-Funktionen aufrufen müssen.

void CMultiCustomer::DoBulkFieldExchange(CFieldExchange* pFX)
{
   pFX->SetFieldType(CFieldExchange::outputColumn);
   RFX_Long_Bulk(pFX, _T("[CustomerID]"), &m_pCustomerID, &m_pcCustomerID);
   RFX_Text_Bulk(pFX, _T("[ContactFirstName]"), &m_pContactFirstName, &m_pcContactFirstName, 50);
   RFX_Text_Bulk(pFX, _T("[PostalCode]"), &m_pPostalCode, &m_pcPostalCode, 50);
   RFX_Text_Bulk(pFX, _T("[L_Name]"), &m_pL_Name, &m_pcL_Name, 50);
   RFX_Long_Bulk(pFX, _T("[BillingID]"), &m_pBillingID, &m_pcBillingID);

   pFX->SetFieldType(CFieldExchange::inputParam);
   RFX_Text(pFX, _T("Param"), m_strParam);
}

Anforderungen

Header: afxdb.h

DFX_Binary

Überträgt Arrays von Bytes zwischen den Felddatenelementen eines CDaoRecordset-Objekts und den Spalten eines Datensatzes in der Datenquelle.

Syntax

void AFXAPI DFX_Binary(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   CByteArray& value,
   int nPreAllocSize = AFX_DAO_BINARY_DEFAULT_SIZE,
   DWORD dwBindOptions = 0);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CDaoFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ "CByteArray" aus dem angegebenen Datenelement entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

nPreAllocSize
Das Framework stellt diese Speichermenge vor. Wenn Ihre Daten größer sind, wird dem Framework bei Bedarf mehr Speicherplatz zugewiesen. Legen Sie diese Größe für eine bessere Leistung auf einen Wert fest, der groß genug ist, um Umlastungen zu verhindern. Die Standardgröße wird in der AFXDAO definiert. H-Datei als AFX_DAO_BINARY_DEFAULT_SIZE.

dwBindOptions
Eine Option, mit der Sie den doppelten Puffermechanismus von MFC nutzen können, um Recordsetfelder zu erkennen, die sich geändert haben. Der Standardwert, AFX_DAO_DISABLE_FIELD_CACHE, verwendet keine doppelten Pufferung, und Sie müssen SetFieldDirty und SetFieldNull selbst aufrufen. Der andere mögliche Wert, AFX_DAO_ENABLE_FIELD_CACHE, verwendet doppelte Pufferung, und Sie müssen keine zusätzliche Arbeit ausführen, um Felder schmutzig oder Null zu markieren. Vermeiden Sie aus Leistungs- und Speichergründen diesen Wert, es sei denn, Ihre Binärdaten sind relativ klein.

Hinweis

Sie können steuern, ob Daten für alle Felder standardmäßig doppelt gepuffert werden, indem Sie "CDaoRecordset::m_bCheckCacheForDirtyFields" festlegen.

Hinweise

Die Daten werden zwischen dem Typ DAO_BYTES in DAO und dem Typ "CByteArray " im Recordset zugeordnet.

Beispiel

Siehe DFX_Text.

Anforderungen

Header: afxdao.h

DFX_Bool

Überträgt boolesche Daten zwischen den Felddatenelementen eines CDaoRecordset-Objekts und den Spalten eines Datensatzes in der Datenquelle.

Syntax

void AFXAPI DFX_Bool(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   BOOL& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CDaoFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ BOOL aus dem angegebenen Datenmemm entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

dwBindOptions
Eine Option, mit der Sie den doppelten Puffermechanismus von MFC nutzen können, um Recordsetfelder zu erkennen, die sich geändert haben. Der Standard, AFX_DAO_ENABLE_FIELD_CACHE, verwendet doppelte Pufferung. Der andere mögliche Wert ist AFX_DAO_DISABLE_FIELD_CACHE. Wenn Sie diesen Wert angeben, überprüft MFC dieses Feld nicht. Sie müssen sich und SetFieldNull sich selbst anrufenSetFieldDirty.

Hinweis

Sie können steuern, ob Daten standardmäßig doppelt gepuffert werden, indem Sie "CDaoRecordset::m_bCheckCacheForDirtyFields" festlegen.

Hinweise

Die Daten werden zwischen typ DAO_BOOL in DAO und boOL im Recordset zugeordnet.

Beispiel

Siehe DFX_Text.

Anforderungen

Header: afxdao.h

DFX_Byte

Überträgt einzelne Bytes zwischen den Felddatenelementen eines CDaoRecordset-Objekts und den Spalten eines Datensatzes in der Datenquelle.

Syntax

void AFXAPI DFX_Byte(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   BYTE& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CDaoFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ BYTE aus dem angegebenen Datenmemm entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

dwBindOptions
Eine Option, mit der Sie den doppelten Puffermechanismus von MFC nutzen können, um Recordsetfelder zu erkennen, die sich geändert haben. Der Standard, AFX_DAO_ENABLE_FIELD_CACHE, verwendet doppelte Pufferung. Der andere mögliche Wert ist AFX_DAO_DISABLE_FIELD_CACHE. Wenn Sie diesen Wert angeben, überprüft MFC dieses Feld nicht. Sie müssen sich und SetFieldNull sich selbst anrufenSetFieldDirty.

Hinweis

Sie können steuern, ob Daten standardmäßig doppelt gepuffert werden, indem Sie "CDaoRecordset::m_bCheckCacheForDirtyFields" festlegen.

Hinweise

Die Daten werden zwischen typ DAO_BYTES in DAO und dem Typ BYTE im Recordset zugeordnet.

Beispiel

Siehe DFX_Text.

Anforderungen

Header: afxdao.h

DFX_Currency

Überträgt Währungsdaten zwischen den Felddatenelementen eines CDaoRecordset-Objekts und den Spalten eines Datensatzes in der Datenquelle.

Syntax

void AFXAPI DFX_Currency(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   COleCurrency& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CDaoFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird dieser Wert aus dem angegebenen Datenmemm des Typs "COleCurrency" entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

dwBindOptions
Eine Option, mit der Sie den doppelten Puffermechanismus von MFC nutzen können, um Recordsetfelder zu erkennen, die sich geändert haben. Der Standard, AFX_DAO_ENABLE_FIELD_CACHE, verwendet doppelte Pufferung. Der andere mögliche Wert ist AFX_DAO_DISABLE_FIELD_CACHE. Wenn Sie diesen Wert angeben, überprüft MFC dieses Feld nicht. Sie müssen sich und SetFieldNull sich selbst anrufenSetFieldDirty.

Hinweis

Sie können steuern, ob Daten standardmäßig doppelt gepuffert werden, indem Sie "CDaoRecordset::m_bCheckCacheForDirtyFields" festlegen.

Hinweise

Daten werden zwischen dem Typ DAO_CURRENCY in DAO und dem Typ "COleCurrency " im Recordset zugeordnet.

Beispiel

Siehe DFX_Text.

Anforderungen

Header: afxdao.h

DFX_DateTime

Überträgt Zeit- und Datumsdaten zwischen den Felddatenelementen eines CDaoRecordset-Objekts und den Spalten eines Datensatzes in der Datenquelle.

Syntax

void AFXAPI DFX_DateTime(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   COleDateTime& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CDaoFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Die Funktion verwendet einen Verweis auf ein COleDateTime-Objekt . Bei einer Übertragung von Recordset zu Datenquelle wird dieser Wert aus dem angegebenen Datenelement übernommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

dwBindOptions
Eine Option, mit der Sie den doppelten Puffermechanismus von MFC nutzen können, um Recordsetfelder zu erkennen, die sich geändert haben. Der Standard, AFX_DAO_ENABLE_FIELD_CACHE, verwendet doppelte Pufferung. Der andere mögliche Wert ist AFX_DAO_DISABLE_FIELD_CACHE. Wenn Sie diesen Wert angeben, überprüft MFC dieses Feld nicht. Sie müssen sich und SetFieldNull sich selbst anrufenSetFieldDirty.

Hinweis

Sie können steuern, ob Daten standardmäßig doppelt gepuffert werden, indem Sie "CDaoRecordset::m_bCheckCacheForDirtyFields" festlegen.

Hinweise

Die Daten werden zwischen typ DAO_DATE in DAO und dem Typ "COleDateTime " im Recordset zugeordnet.

Hinweis

COleDateTime Ersetzt CTime und TIMESTAMP_STRUCT für diesen Zweck in den DAO-Klassen. CTime und TIMESTAMP_STRUCT werden weiterhin für die ODBC-basierten Datenzugriffsklassen verwendet.

Beispiel

Siehe DFX_Text.

Anforderungen

Header: afxdao.h

DFX_Double

Überträgt doppelte Float-Daten zwischen den Felddatenelementen eines CDaoRecordset-Objekts und den Spalten eines Datensatzes in der Datenquelle.

Syntax

void AFXAPI DFX_Double(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   double& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CDaoFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ double"" aus dem angegebenen Datenelement entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

dwBindOptions
Eine Option, mit der Sie den doppelten Puffermechanismus von MFC nutzen können, um Recordsetfelder zu erkennen, die sich geändert haben. Der Standard, AFX_DAO_ENABLE_FIELD_CACHE, verwendet doppelte Pufferung. Der andere mögliche Wert ist AFX_DAO_DISABLE_FIELD_CACHE. Wenn Sie diesen Wert angeben, überprüft MFC dieses Feld nicht. Sie müssen sich und SetFieldNull sich selbst anrufenSetFieldDirty.

Hinweis

Sie können steuern, ob Daten standardmäßig doppelt gepuffert werden, indem Sie "CDaoRecordset::m_bCheckCacheForDirtyFields" festlegen.

Hinweise

Die Daten werden zwischen typ DAO_R8 in DAO und dem Typ "Double float " im Recordset zugeordnet.

Beispiel

Siehe DFX_Text.

Anforderungen

Header: afxdao.h

DFX_Long

Überträgt lange ganzzahlige Daten zwischen den Felddatenelementen eines CDaoRecordset-Objekts und den Spalten eines Datensatzes in der Datenquelle.

Syntax

void AFXAPI DFX_Long(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   long& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CDaoFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ long"" aus dem angegebenen Datenelement entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

dwBindOptions
Eine Option, mit der Sie den doppelten Puffermechanismus von MFC nutzen können, um Recordsetfelder zu erkennen, die sich geändert haben. Der Standard, AFX_DAO_ENABLE_FIELD_CACHE, verwendet doppelte Pufferung. Der andere mögliche Wert ist AFX_DAO_DISABLE_FIELD_CACHE. Wenn Sie diesen Wert angeben, überprüft MFC dieses Feld nicht. Sie müssen sich und SetFieldNull sich selbst anrufenSetFieldDirty.

Hinweis

Sie können steuern, ob Daten standardmäßig doppelt gepuffert werden, indem Sie "CDaoRecordset::m_bCheckCacheForDirtyFields" festlegen.

Hinweise

Daten werden zwischen dem Typ DAO_I4 in DAO und dem Typ long im Recordset zugeordnet.

Beispiel

Siehe DFX_Text.

Anforderungen

Header: afxdao.h

DFX_LongBinary

Wichtig Es wird empfohlen, anstelle dieser Funktion DFX_Binary zu verwenden.

Syntax

void AFXAPI DFX_LongBinary(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   CLongBinary& value,
   DWORD dwPreAllocSize = AFX_DAO_LONGBINARY_DEFAULT_SIZE,
   DWORD dwBindOptions = 0);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CDaoFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ "CLongBinary" aus dem angegebenen Datenelement übernommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

dwPreAllocSize
Das Framework stellt diese Speichermenge vor. Wenn Ihre Daten größer sind, wird dem Framework bei Bedarf mehr Speicherplatz zugewiesen. Legen Sie diese Größe für eine bessere Leistung auf einen Wert fest, der groß genug ist, um Umlastungen zu verhindern.

dwBindOptions
Eine Option, mit der Sie den doppelten Puffermechanismus von MFC nutzen können, um Recordsetfelder zu erkennen, die sich geändert haben. Die Standardeinstellung AFX_DISABLE_FIELD_CACHE verwendet keine doppelpufferung. Der andere mögliche Wert ist AFX_DAO_ENABLE_FIELD_CACHE. Verwendet doppelte Pufferung, und Sie müssen keine zusätzliche Arbeit ausführen, um Felder schmutzig oder Null zu markieren. Vermeiden Sie aus Leistungs- und Speichergründen diesen Wert, es sei denn, Ihre Binärdaten sind relativ klein.

Hinweis

Sie können steuern, ob Daten standardmäßig doppelt gepuffert werden, indem Sie "CDaoRecordset::m_bCheckCacheForDirtyFields" festlegen.

Hinweise

DFX_LongBinary wird zur Kompatibilität mit den MFC ODBC-Klassen bereitgestellt. Die DFX_LongBinary Funktion überträgt binäre BLOB-Daten (Large-Object) mithilfe der Klasse CLongBinary zwischen den Felddatenmembern eines CDaoRecordset-Objekts und den Spalten eines Datensatzes in der Datenquelle. Die Daten werden zwischen dem Typ DAO_BYTES in DAO und dem Typ "CLongBinary " im Recordset zugeordnet.

Beispiel

Siehe DFX_Text.

Anforderungen

Header: afxdao.h

DFX_Short

Überträgt kurze ganzzahlige Daten zwischen den Felddatenelementen eines CDaoRecordset-Objekts und den Spalten eines Datensatzes in der Datenquelle.

Syntax

void AFXAPI DFX_Short(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   short& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CDaoFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ short"" aus dem angegebenen Datenelement entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

dwBindOptions
Eine Option, mit der Sie den doppelten Puffermechanismus von MFC nutzen können, um Recordsetfelder zu erkennen, die sich geändert haben. Der Standard, AFX_DAO_ENABLE_FIELD_CACHE, verwendet doppelte Pufferung. Der andere mögliche Wert ist AFX_DAO_DISABLE_FIELD_CACHE. Wenn Sie diesen Wert angeben, überprüft MFC dieses Feld nicht. Sie müssen sich und SetFieldNull sich selbst anrufenSetFieldDirty.

Hinweis

Sie können steuern, ob Daten standardmäßig doppelt gepuffert werden, indem Sie "CDaoRecordset::m_bCheckCacheForDirtyFields" festlegen.

Hinweise

Daten werden zwischen dem Typ DAO_I2 in DAO und dem Typ short im Recordset zugeordnet.

Hinweis

DFX_Shortentspricht RFX_Int für die ODBC-basierten Klassen.

Beispiel

Siehe DFX_Text.

Anforderungen

Header: afxdao.h

DFX_Single

Überträgt Gleitkommadaten zwischen den Felddatenelementen eines CDaoRecordset-Objekts und den Spalten eines Datensatzes in der Datenquelle.

Syntax

void AFXAPI DFX_Single(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   float& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CDaoFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ float"" aus dem angegebenen Datenelement entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

dwBindOptions
Eine Option, mit der Sie den doppelten Puffermechanismus von MFC nutzen können, um Recordsetfelder zu erkennen, die sich geändert haben. Der Standard, AFX_DAO_ENABLE_FIELD_CACHE, verwendet doppelte Pufferung. Der andere mögliche Wert ist AFX_DAO_DISABLE_FIELD_CACHE. Wenn Sie diesen Wert angeben, überprüft MFC dieses Feld nicht. Sie müssen sich und SetFieldNull sich selbst anrufenSetFieldDirty.

Hinweis

Sie können steuern, ob Daten standardmäßig doppelt gepuffert werden, indem Sie "CDaoRecordset::m_bCheckCacheForDirtyFields" festlegen.

Hinweise

Daten werden zwischen Typ-DAO_R4 in DAO und Typ float im Recordset zugeordnet.

Beispiel

Siehe DFX_Text.

Anforderungen

Header: afxdao.h

DFX_Text

Überträgt CString Daten zwischen den Felddatenelementen eines CDaoRecordset-Objekts und Spalten eines Datensatzes in der Datenquelle.

Syntax

void AFXAPI DFX_Text(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   CString& value,
   int nPreAllocSize = AFX_DAO_TEXT_DEFAULT_SIZE,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

Pfx
Ein Zeiger auf ein Objekt der Klasse CDaoFieldExchange. Dieses Objekt enthält Informationen zum Definieren des Kontexts für jeden Aufruf der Funktion.

szName
Der Name einer Datenspalte.

value
Der im angegebenen Datenelement gespeicherte Wert – der zu übertragende Wert. Bei einer Übertragung von Recordset zu Datenquelle wird der Wert vom Typ CString aus dem angegebenen Datenmemm entnommen. Bei einer Übertragung von Datenquelle zu Recordset wird der Wert im angegebenen Datenmemm gespeichert.

nPreAllocSize
Das Framework stellt diese Speichermenge vor. Wenn Ihre Daten größer sind, wird dem Framework bei Bedarf mehr Speicherplatz zugewiesen. Legen Sie diese Größe für eine bessere Leistung auf einen Wert fest, der groß genug ist, um Umlastungen zu verhindern.

dwBindOptions
Eine Option, mit der Sie den doppelten Puffermechanismus von MFC nutzen können, um Recordsetfelder zu erkennen, die sich geändert haben. Der Standard, AFX_DAO_ENABLE_FIELD_CACHE, verwendet doppelte Pufferung. Der andere mögliche Wert ist AFX_DAO_DISABLE_FIELD_CACHE. Wenn Sie diesen Wert angeben, überprüft MFC dieses Feld nicht. Sie müssen SetFieldDirty und SetFieldNull selbst aufrufen.

Hinweis

Sie können steuern, ob Daten standardmäßig doppelt gepuffert werden, indem Sie "CDaoRecordset::m_bCheckCacheForDirtyFields" festlegen.

Hinweise

Daten werden zwischen typ DAO_CHAR in DAO zugeordnet (oder, wenn das Symbol _UNICODE definiert ist, DAO_WCHAR) und dem Typ "CString " im Recordset eingeben. n

Beispiel

Dieses Beispiel zeigt mehrere Aufrufe an DFX_Text. Beachten Sie auch die beiden Aufrufe von CDaoFieldExchange::SetFieldType. Sie müssen den ersten Aufruf SetFieldType und seinen DFX-Aufruf schreiben. Der zweite Aufruf und die zugehörigen DFX-Aufrufe werden normalerweise vom Code-Assistenten geschrieben, der die Klasse generiert hat.

void CCustSet::DoFieldExchange(CDaoFieldExchange* pFX)
{
   pFX->SetFieldType(CDaoFieldExchange::param);
   DFX_Text(pFX, _T("Param"), m_strParam);
   pFX->SetFieldType(CDaoFieldExchange::outputColumn);
   DFX_Short(pFX, _T("EmployeeID"), m_EmployeeID);
   DFX_Text(pFX, _T("LastName"), m_LastName);
   DFX_Short(pFX, _T("Age"), m_Age);
   DFX_DateTime(pFX, _T("hire_date"), m_hire_date);
   DFX_DateTime(pFX, _T("termination_date"), m_termination_date);

   CDaoRecordset::DoFieldExchange(pFX);
}

Anforderungen

Header: afxdao.h

Siehe auch

Makros und Globalen
CRecordset::D oFieldExchange
CRecordset::D oBulkFieldExchange
CDaoRecordset::D oFieldExchange