C++ 向数据库写入空值
之前一直在搞数据相关滴事情…然后碰到这么个问题,要向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;
}
}