try
{
CString sSQL = "restore database test from disk = 'd:\\test.dat'";
m_pConn->Execute((_bstr_t)sSQL, NULL, adCmdText);
}
catch(_com_error e)
{
MsgBox(e.Description(), MB_ICONHAND);// 捕捉异常
return -2;
}比如源文件不存在,或当前库正在使用无法恢复,这些错误都捕捉不到,但如果sql语句有语法错误,则可以捕捉到。有什么办法能把所有的错误都捕捉到。谢谢!
{
CString sSQL = "restore database test from disk = 'd:\\test.dat'";
m_pConn->Execute((_bstr_t)sSQL, NULL, adCmdText);
}
catch(_com_error e)
{
MsgBox(e.Description(), MB_ICONHAND);// 捕捉异常
return -2;
}比如源文件不存在,或当前库正在使用无法恢复,这些错误都捕捉不到,但如果sql语句有语法错误,则可以捕捉到。有什么办法能把所有的错误都捕捉到。谢谢!
把catch( e)改成catch(...) 我试过,同样是捕捉不到上述的异常。我确实是想把所有的错误都能捉到。我也觉得可能如fcuandy所说,跟错误级别有关。为何SQL的语法错误可以捕捉,但非语法错误却捕捉不了呢?
数据库连接、SQL语法错误、或某个操作的库、表不存在,这些都能捕捉到
但恢复数据库时,若D:\test.dat不存在,或当前库在使用无法恢复,这些都捕捉不到