VC查询数据库时出现异常但没有被catch
查看call stack 出现:
_variant_t::_variant_t(IDispatch * 0x00000000, unsigned char 1) line 1048 + 12 bytes
CJHC_ServerDlg::isNeedModify(CString {"SHJYC"}) line 3215 + 25 bytes
CJHC_ServerDlg::OnTimer(unsigned int 3) line 1628 + 44 bytes
CWnd::OnWndMsg(unsigned int 275, unsigned int 3, long 0, long * 0x00050b48) line 1829
CWnd::WindowProc(unsigned int 275, unsigned int 3, long 0) line 1585 + 30 bytes
AfxCallWndProc(CWnd * 0x00052758 {CJHC_ServerDlg hWnd=???}, HWND__ * 0x001602ea, unsigned int 275, unsigned int 3, long 0) line 215 + 26 bytes
AfxWndProc(HWND__ * 0x001602ea, unsigned int 275, unsigned int 3, long 0) line 368
AfxWndProcBase(HWND__ * 0x001602ea, unsigned int 275, unsigned int 3, long 0) line 220 + 21 bytes
USER32! 77df1ef0()
USER32! 77df204c()
USER32! 77df21af()
USER32! 77e08012()
USER32! 77e0fd24()
USER32! 77e0f76a()
USER32! 77e0f637()
USER32! 77e165db()
USER32! 77e16568()
CWinApp::DoMessageBox(const char * 0x004755bc, unsigned int 48, unsigned int 0) line 113 + 25 bytes
AfxMessageBox(const char * 0x0scadaline 3230
CJHC_ServerDlg::OnTimer(unsigned int 3) line 1628 + 44 bytes
CWnd::OnWndMsg(unsigned int 275, unsigned int 3, long 0, long * 0x000524b8) line 1829
CWnd::WindowProc(unsigned int 275, unsigned int 3, long 0) line 1585 + 30 bytes
AfxCallWndProc(CWnd * 0x00052758 {CJHC_ServerDlg hWnd=???}, HWND__ * 0x001602ea, unsigned int 275, unsigned int 3, long 0) line 215 + 26 bytes
AfxWndProc(HWND__ * 0x001602ea, unsigned int 275, unsigned int 3, long 0) line 368
AfxWndProcBase(HWND__ * 0x001602ea, unsigned int 275, unsigned int 3, long 0) line 220 + 21 bytes
USER32! 77df1ef0()
USER32! 77df204c()
USER32! 77df5f69()
CWnd::RunModalLoop(unsigned long 4) line 3478 + 19 bytes
CDialog::DoModal() line 536 + 12 bytes
CJHC_ServerApp::InitInstance() line 65 + 11 bytes
AfxWinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00133114, int 1) line 39 + 11 bytes
WinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00133114, int 1) line 30
WinMainCRTStartup() line 330 + 54 bytes
KERNEL32! 77e71af6()
我的程序代码是:
try
{
CString ComString; //(char*)_bstr_t(SencondCom);
m_pRecordset.CreateInstance(_uuidof(Recordset));//初始化Recordset指针
CString sqlstr="select needcom from T_Comremote where manid='"+manid+"'";
//只发送30分钟内的数据。
BSTR bstrSQL = sqlstr.AllocSysString();
m_pRecordset->Open(bstrSQL,(IDispatch*)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText);
//adOpenDynamic:动态 adLockOptimistic乐观封锁法 adCmdText:文本查询语句
if(!m_pRecordset->adoEOF)
{
}
m_pRecordset->Close(); //关闭数据记录
return needCom;
}catch(_com_error e)
{
//出错,重新连接
ConnectToODBC();
return needCom;
}
m_pRecordset->Open(bstrSQL,(IDispatch*)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText);
//adOpenDynamic:动态 adLockOptimistic乐观封锁法 adCmdText:文本查询语句
出错的是这一句,请问该怎么处理?
m_pRecordset->Open(bstrSQL,(IDispatch*)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText);