ado的异常类是什么,ADODB::Errors;ADODB::Error怎么用啊,编译器提示ADODB不是namespace或类,是不是我少了什么?

解决方案 »

  1.   

    如果是简单的捕获一下异常,可以这样用:
       
        try
        {
         ADO的相关操作
         ...
        }
        catch(_com_error &e)
        {
          CString strError;
          strError.Format("%s", (char *)e.Description());
          AfxMessageBox(strError);
        }
        catch(...)
        {
          AfxMessageBox("未4知错误!");
         }
    希望能对楼主有所帮助,祝你好运!!!
      

  2.   

    我看见有个程序用catch(ADODB.Erorr e)来捕获异常来解决批更新冲突的记录的再次更新,我是却不行,不知是何故?
      

  3.   

    直接使用ado是不会抛出_com_error的,COM使用HRESULT来判断的// in the head of file
    #define FAILED_THROW( exp )  { HRESULT hr; if (FAILED(hr = exp)) _com_issue_error(hr); }
    // in your function
    try
    {
    _RecordsetPtr pRs("ADODB.Recordset");
    FAILED_THROW( pRs->Open("SELECT * FROM TableName", m_pConnection.GetInterfacePtr(), adOpenForwardOnly, adLockOptimistic, adCmdText) )
    ...
    }
    catch(_com_error e)
    {
    ...
    }
      

  4.   

    我知道_com_error e,我想要的是ado自带的错误类?
      

  5.   

    ADO是基于COM接口的,没有自带的MFC类吧??
    除非你用DAO,或ODBC,否则就老老实实得用_com_error
    出现的错误有相应编码,到SQL的联机丛书搜索一下编码号看看错误原因