CRecordset::SetFieldDirty
Veröffentlicht: Juli 2016
Kennzeichnet einen Felddatenmember des Recordsets, wie oder als unverändert geändert.
Syntax
void SetFieldDirty(
void* pv,
BOOL bDirty = TRUE
);
Parameter
pv
Enthält die Adresse eines Felddatenmember des Recordsets oder in NULL. Wenn NULL, alle Felddatenmember im Recordset bezeichnet werden. (C++ NULL ist nicht dasselbe wie NULL in der Datenbankterminologie, die "Haben kein value ") bedeutet.bDirty
TRUE, wenn der Felddatenmember bezeichnet werden soll, wie "geändert" (geändert wurde). Andernfalls "bereinigen" FALSE, wenn der Felddatenmember wie bezeichnet werden soll (unverändert).
Hinweise
Das Markieren von Feldern als unverändert stellt sicher, dass das Feld nicht aktualisiert wird und weniger SQL-Datenverkehr ergibt.
Hinweis
Diese Memberfunktion ist nicht in Recordsets angewendet werden, die das gesammelte Abrufen von Zeilen verwenden.Wenn Sie das gesammelte Abrufen von Zeilen implementiert haben, dann ergibt SetFieldDirty einen Assertionsfehler.Weitere Informationen über das gesammelte Abrufen von Zeilen, finden Sie im Artikel Recordset: Datensätzen in einer Sammeloperation (ODBC).
Das Framework markiert veränderte Felddatenmember, um sicherzustellen, dass sie den Datensatz in der Datenquelle durch den Mechanismus für den Datensatzfeldaustausch (RFX) geschrieben werden. Das Ändern des Werts eines Felds wird im Allgemeinen das Feld fest, das automatisch geändert wurde, müssen Sie sich selten SetFieldDirty aufrufen, sollten Sie auch sicherstellen, dass Spalten explizit aktualisiert oder eingefügt werden unabhängig davon, welchen Wert im Felddatenmember ist.
Warnung
Rufen Sie die Memberfunktion auf, nachdem Sie Bearbeiten oder AddNew aufgerufen haben.
Verwenden NULL für das erste Argument der Funktion übernimmt die Funktion nur zu outputColumn Feldern, nicht param Felder. Beispielsweise der Aufruf
SetFieldNull(NULL);
wird nur outputColumn Felder zu NULL fest; param Felder sind nicht betroffen.
Um an param Feldern zu arbeiten, müssen Sie die tatsächliche Adresse der einzelnen param, das Sie bearbeiten möchten, wie angeben:
SetFieldNull(&m_strParam);
Dies bedeutet, dass Sie alle param Felder nicht für NULL festlegen können, wie Sie mit outputColumn Feldern können.
Anforderungen
Header: afxdb.h
Siehe auch
CRecordset Class
Hierarchiediagramm
CRecordset::IsFieldDirty
CRecordset::SetFieldNull
CRecordset::Edit
CRecordset::Update