CRecordset::IsFieldNullable

BOOL IsFieldNullable( void* pv );
  throw( CDBException )

参数:
pv指向要检查其状态的字段数据成员的指针。或者是NULL,表示要确定是否所有的字段都可以被设置为Null值。

说明:
调用这个函数以确定指定的字段数据成员是否可以为空(可以被设为Null值,C++的NULL与数据库术语中的Null并不相同,后者意味着“没有值”)。
注意:
如果你实现了成组行检取,你不能调用IsFieldNullable,而是应当调用GetODBCFieldInfo成员函数以确定一个字段是否可以被设为Null值。注意你在任何时候都可以调用GetODBCFieldInfo,而不用考虑你是否实现了成组行检取。
不能为空的字段必须具有值。如果你试图在增加或更新一个记录时将这样一个字段的值设置为Null,则数据源将拒绝增加或更新,并且Update将抛出一个异常。异常发生在调用Update时,而不是发生在调用SetFieldNull时。
用NULL作为IsFieldNullable函数的第一个参数,将使该函数只应用于outputCloumns,而不作用于params。例如,调用
SetFieldNull( NULL );
这只将设置outputColumns为NULL,而Params将不受影响。
要作用于params,你必须为所想要设置的各个params提供实际地址,例如:
SetFieldNull( &m_strParam );
这意味着应用程序不能像对outputColumns一样,将所有params都设置为NULL。
IsFieldNullable通过DoFieldExchange实现。

请参阅:
CRecordset::IsFieldNull, CRecordset::SetFieldNull