使用_RecordsetPtr读表数据时切记要加上Try..catch捕捉错误

5 篇文章 0 订阅
 

HRESULT  hr2=m_pRecorset.CreateInstance(__uuidof( Recordset ));
   if (SUCCEEDED(hr2))
   {
    AfxMessageBox("connect successfully!");

    try
    {
     m_pRecorset->Open("SELECT * from user.",m_pConnection.GetInterfacePtr()
      ,adOpenStatic,adLockOptimistic,adCmdText);

     //
     CString idStr,nameStr,wStr,hStr;
     _variant_t vRVariant;
     while (!m_pRecorset->EndOfFile)
     {
      vRVariant=m_pRecorset->Fields->GetItem((long)1)->GetValue();
      idStr=(char*)(_bstr_t)vRVariant;

      vRVariant=m_pRecorset->Fields->GetItem((long)2)->GetValue();
      nameStr=(char*)(_bstr_t)vRVariant;

      vRVariant=m_pRecorset->Fields->GetItem((long)3)->GetValue();
      wStr=(char*)(_bstr_t)vRVariant;

      vRVariant=m_pRecorset->Fields->GetItem((long)4)->GetValue();
      hStr=(char*)(_bstr_t)vRVariant;
     }
    }
    catch (  _com_error   &e)
    {
     _bstr_t   bstrSource   (e.Source());
     _bstr_t   bstrDescription   (e.Description());
     CString   strError;
     strError.Format( "无法连接test数据库。\r\n错误代码是:%08lx\r\n错误的原因是:%s\r\n错误源是:%s\r\n错误的描述是:%s\r\n ",   e.Error   (),   e.ErrorMessage   (),   (LPCTSTR)   bstrSource,   (LPCTSTR)   bstrDescription);
     MessageBox   (strError,   bstrDescription,MB_OK);
     return  ;

    }
    catch (CFileException* e)
    {
     e->ReportError();
     e->Delete();
     return ;
    }
    catch (CException* e)
    {
     TRACE   (   "***   无法解决的错误   *** "   );
     return  ;
    }
   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值