📄 subject_50744.htm
字号:
<p>
序号:50744 发表者:心有独钟 发表日期:2003-08-26 10:44:34
<br>主题:ado的recordset会抛出什么异常~谢谢~
<br>内容:建立连接的时候用<BR>catch(_com_error e)可以检测到异常~<BR>但是打开记录集的时候好像用这个检测不到~<BR>不知道recordset应该用什么来检测异常~
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:爱丽思 回复日期:2003-08-26 10:47:36
<br>内容:可以检测到的呀:<BR>adorc.CreateInstance(__uuidof(ADODB::Recordset));<BR>try{<BR> adorc.Open(...);<BR>}catch(_com_error e)<BR>{<BR>}<BR><BR>可能是代码里有问题没写清楚吧
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:iamhere 回复日期:2003-08-26 11:00:58
<br>内容:如果你不知道什么类型异常的话,可以使用<BR>TRY<BR>{}<BR>CATCH_ALL( e )<BR>{}<BR>END_CATCH_ALL<BR>来进行捕获。<BR>错误信息可以通过e的相关成员函数来获取
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:心有独钟 回复日期:2003-08-26 11:01:55
<br>内容:嗯~<BR>我的recordset是通过connection的Execute执行一个sql语句得到的~<BR>具体的代码如下:<BR>try<BR>{<BR> sqlcheck="SELECT * FROM product WHERE output='"+SecurytyCode+"'";<BR> m_pRecordset=m_pConnection->Execute(_bstr_t(sqlcheck),&RecordsAffected,adCmdText);<BR> //执行到这儿的时候程序就报错退出了<BR><BR> if((m_pRecordset->BOF)&&(m_pRecordset->adoEOF)) <BR> {<BR> m_pRecordset->Close();<BR> return;<BR> }<BR> else<BR> {<BR> ......<BR> }<BR> catch(_com_error *e)<BR> {<BR> AfxMessageBox(e->ErrorMessage());<BR> } <BR><BR>不知道这样写为什么catch不到异常呢?<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:爱丽思 回复日期:2003-08-26 11:08:40
<br>内容:是什么错啊,m_pRecordset和m_pConnection的指针有没有初始化?<BR>还有这条SQL语句有没有在数据库中试过?<BR>为什么不用OPEN而要用Execute?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:iamhere 回复日期:2003-08-26 11:09:21
<br>内容:如果异常类型不是_com_err,你这样自然捕获不到,试试我上面的建议吧
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:心有独钟 回复日期:2003-08-26 11:16:23
<br>内容:m_pRecordset和m_pConnection都已经初始化过了~<BR>其实是这样的~这个程序本来是好用的~它连接的是另外一台电脑上的sql server2000数据库~<BR>如果连接一直保持的话是可以正常运行的~<BR>但现在要求假设因为网络或者其它故障~即使数据库断掉了程序不能死~<BR><BR>所以一开始好用~然后我把网断掉再测试~就会发生错误~<BR>但是这个error我用_com_error无法catch到~<BR>当时也忘了怎么没用open,好像open有时候会出错~所以改用execute了~<BR><BR><BR>如果实在不办法~我就用CATCH_ALL了~<BR><BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -