CRecordset::IsFieldDirty

BOOL IsFieldDirty( void* pv );
  throw( CMemoryException );

返回值:
如果由于调用了AddNew或Edit,指定的字段数据成员被改变了,则返回非零值;否则返回0。

参数:
pv指向想要检查其状态的字段数据成员的指针;或者为NULL,用来确定某些字段是否被更改了。

说明:
调用这个成员函数以确定指定的字段数据成员是否因为调用了Edit或AddNew而改变。当调用CRecordset的Update成员函数(跟在Edit或AddNew调用之后)更新当前记录时,所有被修改了的字段数据成员中的数据都将被传送给数据源上的对应记录。
注意:
这个成员函数对使用了成组行检取的记录集不起作用。如果你实现了成组行检取,那么IsFieldDirty将总是返回FALSE并导致一个失败的断言。
调用IsFieldDirty之后,前面调用SetFieldDirty的效果将会被复位,因为字段的状态将被重新计算。在使用AddNew的时候,如果当前字段值与null值不同,字段状态将被设为改变过的。在使用Edit的时候,如果字段值与缓冲的值不同,则字段状态被设为改变过的。
IsFieldDirty是通过DoFieldExchange实现的。

请参阅:
CRecordset::SetFieldDirty, CRecordset::IsFieldNull