我在一个表中有几个字段,如:答案1、答案2、答案3等,但是有些记录的答案只有一个,也就是只有答案1,答案2和答案3为空,那么我用m_pRec->GetCollect("答案2");时是否会出错?我该怎么判断这个记录里的答案2的字段值是否为空?

解决方案 »

  1.   

    m_pRec->GetCollect("答案2");不会出错,CString strValue="";
    void GetFieldValue(LPCTSTR lpszName, CString& strValue);
    strValue.Compare("")==0
      

  2.   

    很急啊,没有人知道吗?当我某个记录里的“答案2”字段对应的值为空是为什么用m_pRec->GetCollect("答案2");就会出错?
      

  3.   

    难道都没有人知道么?我用m_pRec->GetCollect("答案2")确实出错了,然后我终于用try、catch解决了问题....
      

  4.   

    catch(_com_error &e)
    {
    TRACE("Error: %08lx.\n",e.Error());
    TRACE("ErrorMessage: %s.\n",e.ErrorMessage());
    TRACE("Source: %s.\n",(LPCTSTR)_bstr_t(e.Source()));
    TRACE("Description: %s.\n",(LPCSTR)_bstr_t(e.Description()));}
    看看是什么原因
      

  5.   

    楼上的方法试过了,怎么没有任何反映?另问一个很菜的问题,TRACE有什么用?
      

  6.   

    呵呵,忘了,TRACE在调试的时候看到的,你把它改成
    CString tt;
    tt.format("Description: %s.\n",(LPCSTR)_bstr_t(e.Description()));
    AfxMessageBox(tt);
    就能看到错误原因了