首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

ADO访问Access数据库的有关问题 给出异常表名 catch不到异常 怎么回事

2012-01-09 
ADO访问Access数据库的问题 给出错误表名 catch不到错误 咋回事代码如下输入正确表名字可以正常运行没问题

ADO访问Access数据库的问题 给出错误表名 catch不到错误 咋回事
代码如下   输入正确表名字   可以正常运行没问题   给出错误表名   OPEN就出错了而且Cathch不到   不是应该能抓到么   现在出现   kernel32.dll错误如何能让catch抓住错误而不是程序死掉

就是这句m_pRecordset-> Open( "SELECT   *   FROM   test11 "  
如果是已经存在的test11   就好用   写成不存在的test   程序就死掉

                    _ConnectionPtrm_pConnection;
//   初始化COM,创建ADO连接等操作
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection));

//连接数据库
try                                  
{

m_pConnection-> Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=test.mdb ", " ", " ",adModeUnknown);
}
catch(_com_error   e)
{
AfxMessageBox( "数据库连接失败,确认数据库Demo.mdb是否在当前路径下! ");
return   ;
}      
//打开数据表
_RecordsetPtrm_pRecordset;
m_pRecordset.CreateInstance(__uuidof(Recordset));
try
{
m_pRecordset-> Open( "SELECT   *   FROM   test11 ",                                 //   查询test表中所有字段
m_pConnection.GetInterfacePtr(),   //   获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error   *e)
{
AfxMessageBox(e-> ErrorMessage());
}


[解决办法]
catch(_com_error *e)
{
AfxMessageBox(e-> ErrorMessage());
}
改为:
catch(...)
{
AfxMessageBox(_T( "May be some errors! "));
}
[解决办法]
catch(_com_error &e)
{
AfxMessageBox(e.Description());
}
看能不能获得错误信息

热点排行