bool bRet=false;
CoInitialize(NULL);
CString pErrMsg=_T("");
ADODB::_ConnectionPtr pConn(__uuidof(ADODB::Connection));
ADODB::_RecordsetPtr pRst(__uuidof(ADODB::Recordset));
pConn->ConnectionString=(_bstr_t)CString(CPublic::szConnSqlString);
//
try
{
HRESULT hresult= pConn->Open("","","",ADODB::adConnectUnspecified);//此处出错,但捕捉不到 }
catch(_com_error &ex)
{
CString pMsg;
pMsg.Format(_T("加载信使号码时出错%s"),ex.ErrorMessage());
::PostMessage(CPublic::hMessengerDlg,WM_LOG,0,(LPARAM)pMsg.GetBuffer());
pMsg.ReleaseBuffer();
bRet=FALSE;
}在运行到 pConn->Open程序崩溃,catch语句捕捉不到错误,请指点
CoInitialize(NULL);
CString pErrMsg=_T("");
ADODB::_ConnectionPtr pConn(__uuidof(ADODB::Connection));
ADODB::_RecordsetPtr pRst(__uuidof(ADODB::Recordset));
pConn->ConnectionString=(_bstr_t)CString(CPublic::szConnSqlString);
//
try
{
HRESULT hresult= pConn->Open("","","",ADODB::adConnectUnspecified);//此处出错,但捕捉不到 }
catch(_com_error &ex)
{
CString pMsg;
pMsg.Format(_T("加载信使号码时出错%s"),ex.ErrorMessage());
::PostMessage(CPublic::hMessengerDlg,WM_LOG,0,(LPARAM)pMsg.GetBuffer());
pMsg.ReleaseBuffer();
bRet=FALSE;
}在运行到 pConn->Open程序崩溃,catch语句捕捉不到错误,请指点
解决方案 »
- MFC打开文件
- 在msdn中怎么查到这些资料
- ##关于方位的处理, 高手入
- ASII码(含扩展)可以用一个字节表示,则可以表示的ASII码值的个数是?
- 通过网页对串口编程
- VC6.0,装过delphi后,默认调试工具被设置为delphi,怎么改回来
- 关于对话框上嵌入对话框的问题!谢谢、!
- 请教 ====chengxyz(大漠小鹰) ====
- 我在一个对话框类中,使用了两个OnUpdate(NULL,0,NULL); 去更新两个View,但是不成功啊?
- 在线程里面使用数据库出现异常~!!!!在线等~!!
- 利用vc+ado连接sql server数据库出错?
- 用CAsyncSocket写服务端的问题(可接受多个客户端连接)
pMsg.ReleaseBuffer();
-->
::PostMessage(CPublic::hMessengerDlg,WM_LOG,0,(LPARAM)(LPCTSTR)pMsg);
//打印调用ADO控件时产生的详细错误信息
void dump_com_error(_com_error &e)
{
CString ErrorStr;
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
ErrorStr.Format( "\n\tADO Error\n\tCode = %08lx\n\tCode meaning = %s\n\tSource = %s\n\tDescription = %s\n\n",
e.Error(), e.ErrorMessage(), (LPCTSTR)bstrSource, (LPCTSTR)bstrDescription );
//在调试窗口中打印错误信息,在Release版中可用DBGView查看错误信息
::OutputDebugString((LPCTSTR)ErrorStr);
#ifdef _DEBUG
AfxMessageBox(ErrorStr, MB_OK | MB_ICONERROR);
#endif
}try
{
//你的ADO代码
}
catch(_com_error& e)
{
dump_com_error(e);
}
try
{
//你的ADO代码
}
catch(...)
{
MessageBox("所有错误信息","提示!");
} 一般OPEN错,都是有连接串造成的!检查一下连接串!
{
//你的ADO代码
}
catch(...)
{
MessageBox("所有错误信息","提示!");
}