CRecordset::SetFieldDirty

标记记录集的字段数据成员标记为已更改或作为原样。

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

参数

  • pv
    在记录集或 NULL包含字段数据成员的地址。如果 NULL,记录集的所有字段数据成员标记。(C++ NULL 与在数据库术语的Null,并不意味着“具有value ". ")

  • bDirty
    TRUE,如果字段数据成员将标记为“错误” (更改)。否则 FALSE,如果字段数据成员将标记“清理” (未更改)。

备注

标记字段,当未更改的确保该字段不更新并不产生少量SQL通信。

说明说明

此成员函数不适用于使用批量取行的记录集。如果已实现批量取行,则 SetFieldDirty 导致生成失败的断言。有关批量取行的更多信息,请参见文章 记录集:获取记录(odbc)

该结构指示已更改的字段数据成员以确保它们为将写入记录在数据源以记录字段交换(rfx)机制。更改的值自动字段通常会设置错误该字段,因此,您很少需要调用 SetFieldDirty,但是,有时您可能想确保列将被显式更新或插入无论值在字段数据成员。

警告说明警告

在调用 编辑AddNew后,调用此成员函数。

使用函数的第一个参数的 NULL 将只将函数应用于 outputColumn 字段,而不是 param 字段。例如,调用

SetFieldNull(NULL);

将设置仅 outputColumn 字段设置为 NULL; param 字段将不受影响。

param 字段若要工作,必须提供单个要使用的 param 物理地址,例如:

SetFieldNull(&m_strParam);

这意味着不能将所有 param 字段添加到 NULL,在中,您可以使用 outputColumn 字段。

要求

Header: afxdb.h

请参见

参考

CRecordset选件类

层次结构图

CRecordset::IsFieldDirty

CRecordset::SetFieldNull

CRecordset::Edit

CRecordset::Update