Partager via


CRecordset::SetFieldDirty

Signale les données membres de champ de recordset comme changé ou comme inchangé.

void SetFieldDirty( 
   void* pv,
   BOOL bDirty = TRUE  
);

Paramètres

  • pv
    Contient l'adresse des données membres de champ du recordset ou NULL. Si NULL, toutes les données membres de champ du recordset sont signalés. (C++ NULL n'est pas le même que Null dans la terminologie de base de données, ce qui signifie « n'avoir aucun value ".)

  • bDirty
    TRUE si les données membres de champ doivent être marquées d'une indication comme « modifiées » (modifiés). Sinon FALSE si les données membres de champ doivent être marquées d'une indication comme pour commencer par « nettoyer » (inchangé).

Notes

Marquer des champs à mesure que garantit inchangé le champ n'est pas mis à jour et entraîne moins de trafic SQL.

Notes

Cette fonction membre n'est pas applicable sur les recordsets qui utilisent l'extraction de lignes en bloc.Si vous avez implémenté l'extraction de lignes en bloc, puis SetFieldDirty provoquera une assertion.Pour plus d'informations sur l'extraction de lignes en bloc, consultez l'article recordset : Extraction globale d'enregistrements (ODBC).

L'infrastructure marque les membres de données de type champ modifiés pour les vérifier est écrite dans l'enregistrement dans la source de données par le mécanisme d'enregistrement de l'échange des champs (bulk RFX). Modifier la valeur d'un champ définit en général le champ modifié automatiquement, vous devez rarement appeler SetFieldDirty vous-même, mais vous pouvez parfois souhaiter vous assurer que les colonnes sont explicitement mises à jour ou insérées quelle que soit la valeur est dans les données membres de champ.

Avertissement

Appelez la fonction membre uniquement après que vous avez appelé modification ou AddNew.

Utilisation NULL pour le premier argument de la fonction appliquera la fonction uniquement aux champs d' outputColumn , pas champs de param . Par exemple, l'appel

SetFieldNull(NULL);

définira seuls les champs d' outputColumn à NULL; les champs de param sont pas affectés.

Pour travailler sur les champs de param , vous devez fournir l'adresse réelle de la personne param que vous souhaitez utiliser en fonction, telle que :

SetFieldNull(&m_strParam);

Cela signifie que vous ne pouvez pas définir tous les champs de param à NULL, comme vous pouvez le faire avec les champs d' outputColumn .

Configuration requise

Header: afxdb.h

Voir aussi

Référence

CRecordset, classe

Graphique de la hiérarchie

CRecordset::IsFieldDirty

CRecordset::SetFieldNull

CRecordset::Edit

CRecordset::Update