使用_RecordsetPtr读表数据时切记要加上Try..catch捕捉错误
2011-12-12 20:04
295 查看
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 ;
}
}
相关文章推荐
- PHP捕捉错误并显示友好信息的方法(不使用try...catch)
- 使用try...catch...and or....finally (vbscript or jscript) 处理可能的某些或全部错误
- java 捕捉错误try-catch
- 在ios开发中使用 try 和 catch 来捕获错误。
- 解决try-catch 在RELEASE版无法捕捉错误
- sql server try...catch使用 异常处理 不错的SQL错误处理
- js捕捉函数中的错误(利用try。。。catch)
- 在ios开发中使用 try 和 catch 来捕获错误。
- js错误处理try..catch使用
- C#学习使用try-catch-finally错误处理表达式(续)--定义自己的异常消息类
- 在ios开发中使用 try 和 catch 来捕获错误。
- 在ios开发中使用 try 和 catch 来捕获错误。
- 如何取得Try/Catch捕捉到的错误信息
- Scala try catch 打印错误信息和数据
- IOS开发之--异常处理--使用try 和 catch 来捕获错误。
- Foreach语句,Throw语句,Try,catch语句的使用,报告编译错误
- 后台判断格式是否想要的类型可使用 try{} catch{}捕获错误,
- C#如何使用 Try/Catch 块捕捉异常
- 在ios开发中使用 try 和 catch 来捕获错误。
- try{ }catch{ }在限制用户输入数据时的使用