ado,GetCollect出错的问题? 本人用RECORDSET的GetCollect("name")方法时,发现当数据库中字段name为空值时会出错,可是我设计数据库时该字段可以为空,请问如何解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 VARIANT var;GetCollect....if (var.VT != NULL) .... _variant_t var;var=m_ADOSet->GetCollect("name");strNet_kind=var.vt==VT_NULL?"":(char*)(_bstr_t)dholder; //这样看看_variant_t var;var=m_ADOSet->GetCollect("name");CString strNet_kind;strNet_kind=var.vt==VT_NULL?"":(char*)(_bstr_t)dholder; strSQL.Format("select * from article where cataid=%d",iCataID); pRs1->Open(_bstr_t(strSQL),vtMissing,adOpenDynamic,adLockBatchOptimistic,adCmdText); if(!pRs1->adoEOF) { pRs1->MoveFirst(); while(!pRs1->adoEOF) { _vValue=pRs1->GetCollect("id"); if(_vValue.vt!=VT_NULL) { _vValue.ChangeType(VT_I4); iID=_vValue.iVal; } _vValue=pRs1->GetCollect("title"); if(_vValue.vt!=VT_NULL) { _vValue.ChangeType(VT_BSTR); strTitle=_vValue.bstrVal; } //填充节点 hSubItem=m_TreeList.InsertItem(strTitle,hItem,TVI_SORT); m_TreeList.SetItemData(hSubItem,iID); pRs1->MoveNext(); }//end while }//end if pRs1->Close(); pRs->MoveNext(); }//end while pRs->Close(); }//end if return TRUE;} 可我的程序是在执行GetCollect("name")这一句时就出错了! vValue=pRs1->GetCollect("id");if(_vValue.vt!=VT_NULL)按这种方式不会错得 你的数据库用的是不是oracle?? 而且你用的ADO驱动是oracle提供的那种,而不是微软提供的那种??? VC2010为啥用CDaoDatabase.Create 编译后运行无法初始化? 对话框类的类名定义之后怎么改? VC默认的函数编译类型是stdcall还是cdecl? 请问如何实现这样的tooltip效果? 定时器和线程 用MODEM+VC写一个传真的核心技术 Enum出当前系统上的网卡的uuid和状态 为什么不立即执行啊?郁闷死我了啊 求助!!!vc界面 怎样用进度条控件? 如何阻止一个EXE被同时打开2遍 向各位请教一个WIN32资源问题,撒100分
GetCollect....
if (var.VT != NULL)
....
var=m_ADOSet->GetCollect("name");
strNet_kind=var.vt==VT_NULL?"":(char*)(_bstr_t)dholder;
_variant_t var;
var=m_ADOSet->GetCollect("name");
CString strNet_kind;
strNet_kind=var.vt==VT_NULL?"":(char*)(_bstr_t)dholder;
pRs1->Open(_bstr_t(strSQL),vtMissing,adOpenDynamic,adLockBatchOptimistic,adCmdText);
if(!pRs1->adoEOF)
{
pRs1->MoveFirst();
while(!pRs1->adoEOF)
{
_vValue=pRs1->GetCollect("id");
if(_vValue.vt!=VT_NULL)
{
_vValue.ChangeType(VT_I4);
iID=_vValue.iVal;
} _vValue=pRs1->GetCollect("title");
if(_vValue.vt!=VT_NULL)
{
_vValue.ChangeType(VT_BSTR);
strTitle=_vValue.bstrVal;
} //填充节点
hSubItem=m_TreeList.InsertItem(strTitle,hItem,TVI_SORT);
m_TreeList.SetItemData(hSubItem,iID);
pRs1->MoveNext();
}//end while
}//end if
pRs1->Close();
pRs->MoveNext();
}//end while
pRs->Close();
}//end if
return TRUE;
}
if(_vValue.vt!=VT_NULL)
按这种方式不会错得