CDaoRecordset::SetFieldDirty

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

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

说明:
调用这个成员函数,可以把记录集的字段数据成员在改变或未改变时作记号。没有改变时作记号的字段保证字段没有更新过。
框架对改变的字段数据成员作记号,以保证将通过DAO记录字段交换(DFX)机制把它们写到数据源上的记录中。改变字段值通常会自动把这个字段设置为脏,因此很少需要调用SetFieldDirty,但有时想保证这些列有明确更新或插入,而不管字段数据成员中有什么值。DFX机制还采用PSEUDO NULL。有关的更多信息,请参阅CDaoFieldExchange::m_nOperation。
如果未使用双缓存机制,字段值的改变将不会把这个字段设置为脏的。
这种情况下,有必要明确设置这个字段脏。m_bCheckCacheForDirtyFields中包含的标记控制这个自动字段检查。
重点:只能在调用Edit或AddNew之后调用这个成员函数。
对这个函数的第一个参数使用NULL将把它应用到所有outputColumns,而不是CDaoFieldExchange中的params。例如调用
SetFieldDirty(NULL);
将只把outputColumns设置为NULL。params的值不受影响。
要对params生效,必须提供想作用的单独param的实际地址,例如:
SetFieldDirty(&m_strParam);
这表示不能把所有params设置为NULL,而为outputColumns则可以。SetFieldDirty是通过DoFieldExchange实现的。
有关记录字段交换的更多信息,请参阅联机文档“Visual C++程序员指南”中的“DAO记录字段交换(DFX)”和“DAO记录集:动态绑定记录”。

请参阅:CDaoRecordset::SetFieldNull, CDaoRecordset::SetFieldValue