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 DoBulkFieldExchange
aufruft. 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 CRecordset
abgeleiteten 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 SQLSetPos
verwenden.
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 CRecordset
abgeleiteten 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 SQLSetPos
verwenden.
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 CRecordset
abgeleiteten 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 SQLSetPos
verwenden.
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 CRecordset
abgeleiteten 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 SQLSetPos
verwenden.
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 CRecordset
abgeleiteten 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 SQLSetPos
verwenden.
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 CRecordset
abgeleiteten 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 SQLSetPos
verwenden.
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 CRecordset
abgeleiteten 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 SQLSetPos
verwenden.
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 CRecordset
abgeleiteten 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 SQLSetPos
verwenden.
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_Short
entspricht 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