CDaoRecordset::SetFieldNull

void SetFieldNull( void* pv, BOOL bNull = TRUE );
throw( CDaoException, CMemoryException );

Parameters

pv

Contains the address of a field data member in the recordset or NULL. If NULL, all field data members in the recordset are flagged. (C++ NULL is not the same as Null in database terminology, which means “having no value.”)

bNull

Nonzero if the field data member is to be flagged as having no value (Null). Otherwise 0 if the field data member is to be flagged as non-Null.

Remarks

Call this member function to flag a field data member of the recordset as Null (specifically having no value) or as non-Null. SetFieldNull is used for fields bound in the DoFieldExchange mechanism.

When you add a new record to a recordset, all field data members are initially set to a Null value and flagged as “dirty” (changed). When you retrieve a record from a data source, its columns either already have values or are Null. If it is not appropriate to make a field Null, a CDaoException is thrown.

If you are using the double-buffering mechanism, for example, if you specifically wish to designate a field of the current record as not having a value, call SetFieldNull with bNull set to TRUE to flag it as Null. If a field was previously marked Null and you now want to give it a value, simply set its new value. You do not have to remove the Null flag with SetFieldNull. To determine whether the field is allowed to be Null, call IsFieldNullable.

If you are not using the double-buffering mechanism, then changing the value of the field does not automatically set the field as dirty and non-Null. You must specifically set the fields dirty and non-Null. The flag contained in m_bCheckCacheForDirtyFields controls this automatic field checking.

The DFX mechanism employs the use of PSEUDO NULL. For more information, see CDaoFieldExchange::m_nOperation.

Important   Call this member function only after you have called Edit or AddNew.

Using NULL for the first argument of the function will apply the function only to outputColumns, not params in CDaoFieldExchange. For instance, the call

SetFieldNull( NULL );

will set only outputColumns to NULL. The value of param will be unaffected.

For more information about record field exchange, see the articles DAO Record Field Exchange (DFX) and DAO Recordset: Binding Records Dynamically in Visual C++ Programmer's Guide.

CDaoRecordset OverviewClass MembersHierarchy Chart

See Also   CDaoRecordset::SetParamValue