CDaoRecordset::SetFieldNull

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

参数:
pv包含记录集中字段数据成员的地址或者为NULL。如果是NULL,则对记录集中所有字段数据成员作标记(C++中的NULL与数据库术语中的Null不同,意思是“不含任何值”)。
bNull如果在没有值(NULL)时对字段数据成员作标记则为TRUE。否则如果在非NULL时对字段数据成员作标记,则为FALSE。

说明:
调用这个成员函数,可以把记录集的字段数据成员在Null或者非Null时作记号。SetFieldNull用于受DoFieldExchange机制绑定的字段。
在向记录集添加新记录时,最初所有字段数据成员都设置为Null值并标记为“脏”(改变)。从数据源获取记录时,它的列或者已经有值或者为Null。如果不能把字设置为Null,将产生CDaoException。
如果使用双缓存机制,例如,如果特别想在没有值时标明当前记录的字段,调用bNull设置TRUE的SetFieldNull把它标记为Null。如果字段以前有Null记号,现在想给它一个值,只要把它设置为新值即可,不必用SetFieldNull移去Null标记。为确定字段是否允许为Null,调用IsFieldNull。
如果未使用双缓存机制,字段值的改变将不会把这个字段设置为脏的。
这种情况下,有必要明确设置这个字段脏。m_bCheckCacheForDirtyFields中包含的标记控制这个自动字段检查。
DFX机制还采用PSEUDO NULL。有关的更多信息,请参阅CDaoFieldExch-ange::m_nOperation。
重点:只能在调用Edit或AddNew之后调用这个成员函数。
对这个函数的第一个参数使用NULL将把它应用到所有outputColumns,而不是CDaoFieldExchange中的params。例如调用
SetFieldNull(NULL);
将只把outputColumns设置为NULL。params的值不受影响。
有关记录字段交换的更多信息,请参阅联机文档“Visual C++程序员指南”中的“DAO记录字段交换(DFX)”和“DAO记录集:动态绑定记录”。

请参阅:CDaoRecordset::SetParamValue