小弟刚刚遇到的一个问题,比如一个表有name和value两项,类型都为CString,name是主键不能为空,Value可以为空
如果有以下代码:
_RecordsetPtr rs;
CString temp=(char*)(_bstr_t)(rs->Fields->GetItem(_variant_t("value"))->Value);
这时发现如果value为空值就会出错,问请有什么解决的方法么?

解决方案 »

  1.   


    _variant_t var;var=m_set->GetCollect("字段名");if(var.vt!=VT_NULL)
    {
          CString temp = (LPCSTR)_bstr_t(var);
                         
    }
      

  2.   

    rs->Fields->GetItem(_variant_t("value"))->Value你是这个,一样的,返回_variant_t
      

  3.   

    ???
    还有这样的故事????看看是不是表达式有问题应该就是这样做的,呵呵http://www.vckbase.com/document/viewdoc/?id=215
    看看这个
      

  4.   

    要么是你变量类型:_variant_t定义写错了_variant_t var;
    CString strtemp;if(var.vt==VT_NULL)
     strtemp="";
    else
     strtemp.Format("%s",(char*)_bstr_t(var));楼上的说的没错