用的是ado ,com 连接的数据库
现在想插入纪录的时候报出sqlsever的错误
try 
{
...
}
catch(_com_error e)
{
     e.ErrorMessge();
     e.WCode();
}这样做不管sql文不对,还是数据重复  得出的e内容都是一样的
怎么区分
谢谢

解决方案 »

  1.   

    头想把sql工具执行的报错结果拿出来
    郁闷!
      

  2.   

    catch(_com_error e)
     {
      _bstr_t bstrSource(e.Source());  _bstr_t bstrDescription(e.Description());
      
      TRACE(_T("\n Source : %s \n Description : %s \n"),(LPCSTR)bstrSource,(LPCSTR)bstrDescription); 
     }
      

  3.   

    try{
           ////...............
    }
    catch (_com_error e) 
     {  
      CString strComError;
      strComError.Format("错误编号: %08lx\n错误信息: %s\n错误源: %s\n错误描述: %s",
           e.Error(),                  // 错误编号
           e.ErrorMessage(),           // 错误信息
           (LPCSTR) e.Source(),        // 错误源
           (LPCSTR) e.Description());  // 错误描述      
      
      ::MessageBox(NULL,strComError,"错误",MB_ICONEXCLAMATION);
     }
      

  4.   

    UP------------------------------------------------------e.Error() 的值一直都是 -2147217900
    郁闷
    现在暂时根据 e.Description()里面查找关键字来判断的!