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