用ADO访问Access,如何捕捉增加记录不成功时的异常? 在VC环境下我用ADO访问Access,当我增加一条记录时,因为数据类型不对,update时数据没有加入数据库,但是也没有提示错误,所以我想知道,如何判断记录更新了没有,错误信息是什么?请帮忙! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 try{//do your sql }catch(...){ long errorcount=myapp->m_pConnection->GetErrors ()->GetCount (); if (errorcount<1) return 1; _bstr_t add; CString errormsg; for (short i=0;i<errorcount;i++) { add=myapp->m_pConnection->GetErrors ()->GetItem (COleVariant((short)i))->GetDescription (); errormsg.Insert (0,(char*)add); errormsg+="\r"; }#ifdef _DEBUG AfxMessageBox(errormsg);#endif myapp->m_pConnection ->GetErrors ()->Clear();} CAdoRecordset* pAdoset; pAdoset = m_pOpDatabase->GetDataRest("REP_MAIN"); strSQL = "SELECT * FROM REP_MAIN"; pAdoset = m_pOpDatabase->GetDataRest("REP_MAIN"); m_pOpDatabase->Connect(pAdoset,strSQL); pAdoset->AddNew(); pAdoset->lSetFieldValue("SystemKey",2); pAdoset->Update(); pAdoset->Close(); try { CAdoRecordset* pAdoset; pAdoset = m_pOpDatabase->GetDataRest("REP_MAIN"); strSQL = "SELECT * FROM REP_MAIN"; pAdoset = m_pOpDatabase->GetDataRest("REP_MAIN"); m_pOpDatabase->Connect(pAdoset,strSQL); pAdoset->AddNew(); pAdoset->lSetFieldValue("SystemKey",2); pAdoset->Update(); pAdoset->Close(); } catch(_com_error e)///捕捉异常 { CString errormessage; _bstr_t bstrSource(e.Source()); _bstr_t bstrDescription(e.Description()); errormessage.Format("代码:%08lx\n含义:%s\n描述:%s\n",e.Error(),e.ErrorMessage(), (LPCSTR)bstrDescription); AfxMessageBox(errormessage);///显示错误信息 }还可以在后面加上 ZHENG017(风中王子)的那一段catch vc 中 滚动条的滑块大小设置 appmodul编译出错 求助:需要频繁操作的数据表,是否有高效的操作方法? 表单的DISPATCH指针问题 如何实现复制文件或者移动文件过程中的对话框? msdn 如何获得窗口的宽度和高度? 在线等待,急!~!~!~!~,我用CFileDialog打开一个文件,我只想要文件名,不想要路径,怎么办? CreatEx()函数送出的消息如何截获?? VC的SOCKET问题请请教 在单文档的客户区,如何在一个图形上点击MOUSE有动作,点空白区没有动作,如果做到??? 有谁做过这类东东,就是处理一个SDI单文档,里面的多个不同类型模板切换,请给出例子,急~~~~
{
//do your sql
}
catch(...)
{
long errorcount=myapp->m_pConnection->GetErrors ()->GetCount ();
if (errorcount<1)
return 1;
_bstr_t add;
CString errormsg;
for (short i=0;i<errorcount;i++)
{
add=myapp->m_pConnection->GetErrors ()->GetItem (COleVariant((short)i))->GetDescription ();
errormsg.Insert (0,(char*)add);
errormsg+="\r";
}
#ifdef _DEBUG
AfxMessageBox(errormsg);
#endif
myapp->m_pConnection ->GetErrors ()->Clear();
}
pAdoset = m_pOpDatabase->GetDataRest("REP_MAIN");
strSQL = "SELECT * FROM REP_MAIN";
pAdoset = m_pOpDatabase->GetDataRest("REP_MAIN");
m_pOpDatabase->Connect(pAdoset,strSQL);
pAdoset->AddNew();
pAdoset->lSetFieldValue("SystemKey",2);
pAdoset->Update();
pAdoset->Close();
{
CAdoRecordset* pAdoset;
pAdoset = m_pOpDatabase->GetDataRest("REP_MAIN");
strSQL = "SELECT * FROM REP_MAIN";
pAdoset = m_pOpDatabase->GetDataRest("REP_MAIN");
m_pOpDatabase->Connect(pAdoset,strSQL);
pAdoset->AddNew();
pAdoset->lSetFieldValue("SystemKey",2);
pAdoset->Update();
pAdoset->Close();
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
errormessage.Format("代码:%08lx\n含义:%s\n描述:%s\n",e.Error(),e.ErrorMessage(),
(LPCSTR)bstrDescription);
AfxMessageBox(errormessage);///显示错误信息
}还可以在后面加上 ZHENG017(风中王子)的那一段catch