ADO访问数据库,当遇到空值时? 在线等待回答!
_variant_t vFieldValue; //声明一个变量用来存储所得的值
vFieldValue = Recordset->GetCollect("Name"); //当Name里的值为空值时
CString str = (char*)_bstr_t(vFieldValue); //此句便会出错!
怎么办,如何事先判断空值呢?
问题点数:20、回复次数:6Top
1 楼xuanzg(小钢娃)回复于 2004-04-03 00:12:56 得分 15
判断以下
CString str;
if(vFieldValue.vt != VT_NULL)
{
str = (char*)_bstr_t(vFieldValue);
}Top
2 楼maxiqiu(后面的注意了)回复于 2004-04-03 00:17:38 得分 0
int iCount = Recordset->GetRecordCount();
Recordset->MoveFirst();
if(iCount > 0)
CString str = (char*)_bstr_t(vFieldValue);Top
3 楼andraw20(学好VC)回复于 2004-04-03 10:04:17 得分 0
_variant_t vFieldValue;
CString str ;
vFieldValue = Recordset->GetCollect("Name");
if( vFieldValue != VT_NULL )
{
str = vFieldValue.bstrVal ;
}
Top
4 楼jszj(老板说mis部不是赚钱的部门...)回复于 2004-04-03 10:14:07 得分 0
vFieldValue = Recordset->GetCollect("Name"); //当Name里的值为空值时
之后要判断是否为NULL,当然如果字段本来就不能为NULL的话,就不需要判断。如果不为NULl,则再执行下面这一句了
CString str = (char*)_bstr_t(vFieldValue); //此句便会出错!
Top
5 楼billy145533($_$)回复于 2004-04-03 14:28:27 得分 0
同意 xuanzg(小钢娃)Top
6 楼showjancn(难得一剑)回复于 2004-04-03 15:26:05 得分 5
vFieldValue = m_pRs->GetCollect("分类");
if (vFieldValue.vt == 1)
{
m_strMaterialType = _T("");
}
else
{
m_strMaterialType = (char*)_bstr_t(vFieldValue);
}Top




