之前一直在搞数据相关滴事情…然后碰到这么个问题,要向Access数据库的数据字段写入空值…

要是字符型字段还好说一点咯,写个空字符串就好了…

这个数字型,想想的话怎么着也要给个数字啊…

最后,研究发现,其实微软的接口使用的是自定义的一种数据封装类…是可以实现向数据字段写入空值滴…

代码如下:

// 使用的是ADO2.H这个ADO封装类
_variant_t vtFld;
vtFld.vt = VT_NULL;
return pRs->SetFieldValue(nIndex, vtFld);

以下是函数的具体实现

BOOL CADORecordset::SetFieldValue(int nIndex, _variant_t vtValue)
{
	_variant_t vtIndex;
	
	vtIndex.vt = VT_I2;
	vtIndex.iVal = nIndex;
	
	return PutFieldValue(vtIndex, vtValue);
}
 
BOOL CADORecordset::PutFieldValue(_variant_t vtIndex, _variant_t vtFld)
{
	if(m_nEditStatus == dbEditNone)
		return FALSE;
 
	try
	{
		m_pRecordset->Fields->GetItem(vtIndex)->Value = vtFld;
		return TRUE;
	}
	catch(_com_error &e)
	{
		dump_com_error(e);
		return FALSE;
	}
}