在vc6中,一个简单的ado连接sql server程序,我已经在stdafx。h中import了ado的dll,
然后我想看如何进入异常处理部分,以下测试程序代码段,当我拔掉网线在连数据库时,
连接肯定是失败,但是没有被_com_error catch住,而是直接跳出程序kernel。dll错误.
在加入catch()中被catch住了,用getlasterr去抓错误代码,竟然是抓的是0(正常),
在跟ado的代码时,发现投的异常是 _com_error啊,为什么catch(_com_error)没有抓住ado连接失败的异常啊?
  是我import问题?下面是标准倒入串,应该没有问题,难道还需要设置链接部分?>?? 请教请教.,,#pragma warning (disable: 4146)
#import "c:\Program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF", "ADOEOF")
#pragma warning (default: 4146)  
    
BOOL CTest2Dlg::OnInitDialog()
{
   if(!AfxOleInit())//这就是初始化COM库
  {
     AfxMessageBox("OLE初始化出错!");
   
  }
  CDialog::OnInitDialog();
  
}void CTest2Dlg::OnButton1() 
{
_ConnectionPtr pConn;

CString szConnectString;
szConnectString.Format("driver={SQL Server};Server=%s;DATABASE=GQBD;UID=%s;PWD=%s","192.168.1.111","sa","mjt_0755");
try
{
pConn.CreateInstance(__uuidof(Connection));
     pConn->Open(_bstr_t(szConnectString),"","",adConnectUnspecified);

}
catch(_com_error* e)
{
CString sMsg;
sMsg.Format("%s 程序将关闭", e->Description());
::MessageBox(NULL,sMsg, "错误",MB_OK);
}
//catch(...)
//{
// ::MessageBox(NULL,"数据库连接失败, 程序将关闭", "错误",MB_OK);

//}
}