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。
使用函数的第一个参数的 NULL 将只将函数应用于 outputColumn 字段,而不是 param 字段。 例如,调用
SetFieldNull(NULL);
将设置仅 outputColumn 字段设置为 NULL; param 字段将不受影响。
在 param 字段若要工作,必须提供单个要使用的 param 物理地址,例如:
SetFieldNull(&m_strParam);
这意味着不能将所有 param 字段添加到 NULL,在中,您可以使用 outputColumn 字段。
备注
当将参数设置为Null时,对 SetFieldNull 在记录集前是在断言的已打开的结果。在这种情况下,调用 SetParamNull。
SetFieldNull 通过 DoFieldExchange实现。
Header: afxdb.h