📄 subject_44362.htm
字号:
<p>
序号:44362 发表者:金枪鱼 发表日期:2003-06-19 09:06:59
<br>主题:打开数据库时的提示问题
<br>内容:打开数据库时,我不像捕捉各种复杂的异常,仅仅弹出一个提示框说明数据库没有打开即可。<BR>[ODBC、Win2KServer、SQLServer2K]<BR>我用下来代码:<BR>if(!pDb->IsOpen())<BR> pDb->OpenEx(_T("DSN=")+DataSourceName+_T(";UID=")+DbLogName+_T(";PWD=")+DbPwd,CDatabase::noOdbcDialog);<BR>if(!pDb->IsOpen())<BR> {<BR> this->MessageBox("数据库连接失败!","错误",MB_OK | MB_ICONSTOP);<BR> return -1;<BR> }<BR><BR>一般操作完全正常。<BR><BR>但是当我把SQL服务关闭,或者使用一个错误的登录密码登录。结果却不是弹出我设定的提示消息框,而是"用户sa登录失败!"或者“通讯链接失败!”。我设置的提示框根本就没有弹出来!<BR><BR>请高手指点为什么,难道必须使用异常捕捉吗?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:萧七 回复日期:2003-06-19 09:47:04
<br>内容:出 错 的 地 方 在 : pDb->OpenEx()处 , 下 边 的 if语 句里 的 MessageBox根 本 都 不 会 执 行 的 。 <BR>用:<BR>try<BR>{<BR>//OPEN DATABASE<BR>}<BR>catch(...)<BR>{<BR> //ERROR MESSAGE: <BR> MessageBox();<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-06-19 13:44:53
<br>内容: //检查数据库打开情况,如果没有打开就尝试打开<BR> if(!pDb->IsOpen())<BR> {<BR> try<BR> {<BR> pDb->OpenEx(_T("DSN=")+DataSourceName+_T(";UID=")+DbLogName+_T(";PWD=")+DbPwd,CDatabase::noOdbcDialog);<BR> }<BR> catch(CDBException * e)<BR> {//如果数据库还没有打开,弹出警示对话框<BR> CString strTip=_T("数据库连接失败!\n\n");<BR> strTip+=_T("因为:\n\n")+e->m_strError;<BR> MessageBox(strTip,"错误",MB_OK | MB_ICONSTOP);<BR> e->Delete();<BR> return -1;<BR> } <BR> }<BR><BR>这样好像对了,但还要不要throw,还有END_CATCH?
<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-06-19 14:11:02
<br>内容:客 户 程 序 不 用 THROW了 吧 , 你 只 捕 获 异 常 就 行 了
<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 + -