Partager via


CRecordset::SetFieldNull

Signale les données membres de champ de recordset comme Null (en particulier n'ayant pas de valeur) ou comme non null.

void SetFieldNull( 
   void* pv,
   BOOL bNull = 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 ".)

  • bNull
    Une valeur différente de zéro si les données membres de champ doivent être marquées d'une indication comme n'ayant pas de valeur (Null). Sinon 0 si les données membres de champ doivent être marquées d'une indication comme non null.

Notes

Lorsque vous ajoutez un nouvel enregistrement à un recordset, toutes les données membres de champ sont initialement définies à une valeur NULL et marquées d'une indication comme « modifiées » (modifiés). Lorsque vous récupérez un enregistrement d'une source de données, ses colonnes déjà ont des valeurs ou est null.

Notes

n'appelez pas cette fonction membre sur les recordsets qui utilisent l'extraction de lignes en bloc.Si vous avez implémenté l'extraction de lignes en bloc, appeler SetFieldNull trouve une assertion.Pour plus d'informations sur l'extraction de lignes en bloc, consultez l'article recordset : Extraction globale d'enregistrements (ODBC).

Si vous souhaitez spécifiquement indiquer un champ de l'enregistrement courant en tant que n'ayant pas de valeur, appelez SetFieldNull avec bNull défini à TRUE pour le signaler en tant que Null. Si un champ a été précédemment marqué Null et vous souhaitez maintenant lui attribuer une valeur, il suffit de sa nouvelle valeur. Vous ne devez pas supprimer l'indicateur null à SetFieldNull. Pour déterminer si est autorisé à le champ pour être null, appelez IsFieldNullable.

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 .

Notes

En définissant des paramètres avec la valeur Null, un appel à SetFieldNull avant le recordset est des résultats ouverts dans une assertion.Dans ce cas, appelez SetParamNull.

SetFieldNull est implémenté via DoFieldExchange.

Configuration requise

Header: afxdb.h

Voir aussi

Référence

CRecordset, classe

Graphique de la hiérarchie

CRecordset::IsFieldNull

CRecordset::SetFieldDirty

CRecordset::Edit

CRecordset::Update

CRecordset::IsFieldNullable