CRecordset::SetFieldNull

标记记录集的字段数据成员为Null (特别是有值)或如非null。

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

参数

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

  • bNull
    非零,则字段数据成员不将标记为的值(Null)。否则0,如果字段数据成员将标记为非null。

备注

当您向记录集添加新记录时,所有字段数据成员最初设置为Null值并标记为“错误” (更改)。当从数据源中检索记录,其列的值或为Null。

说明说明

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

如果您专门希望指定为一个的当前记录的字段值,则调用 SetFieldNull 和 bNull 设置为 TRUE 标记象Null。如果字段以前被标记为Null,您现在要为其指定值,将其新值。您不必移除后标志 SetFieldNull。若要确定字段是否允许为Null,请调用 IsFieldNullable

警告说明警告

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

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

SetFieldNull(NULL);

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

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

SetFieldNull(&m_strParam);

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

说明说明

当将参数设置为Null时,对 SetFieldNull 在记录集前是在断言的已打开的结果。在这种情况下,调用 SetParamNull

SetFieldNull 通过 DoFieldExchange实现。

要求

Header: afxdb.h

请参见

参考

CRecordset选件类

层次结构图

CRecordset::IsFieldNull

CRecordset::SetFieldDirty

CRecordset::Edit

CRecordset::Update

CRecordset::IsFieldNullable