CRecordset::SetFieldDirty

Kennzeichnet einen Felddatenmember des Recordsets, wie oder als unverändert geändert.

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.

HinweisHinweis

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.

WarnhinweisVorsicht

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

Referenz

CRecordset-Klasse

Hierarchien-Diagramm

CRecordset::IsFieldDirty

CRecordset::SetFieldNull

CRecordset::Edit

CRecordset::Update