iCAx开思网

标题: CAA中数据库连接错误的捕捉 [打印本页]

作者: chengongcumt    时间: 2007-7-19 15:26
标题: CAA中数据库连接错误的捕捉
CAA中数据库运用了ADO技术进行SQL server 2000数据源的联接,如果数据服务正常启动则没有问题:
HRESULT  hr;
hr=m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection->ConnectionTimeout = 20;///设置超时时间为5秒       
hr=m_pConnection->Open("Data Source=ComponentLib;UID=saWD=1;","","",adModeUnknown);

如果数据服务没有打开,则执行到
hr=m_pConnection->Open("Data Source=ComponentLib;UID=saWD=1;","","",adModeUnknown);
时死机,且后面语句无法再执行,所以无法根据hr的值后面再做相应处理。

用VC中的一般方法:
try
{
m_pConnection->ConnectionTimeout = 20;///设置超时时间为5秒       
hr=m_pConnection->Open("Data Source=ComponentLib;UID=saWD=1;","","",adModeUnknown);
}
catch( _com_error & a_pComError )

{

…. // 错误处理

return E_UNEXPECTED;

}
编译不过!!

用CAA中的语句:
CATTry
{
m_pConnection->ConnectionTimeout = 20;///设置超时时间为5秒       
hr=m_pConnection->Open("Data Source=ComponentLib;UID=saWD=1;","","",adModeUnknown);
}

CATCatch(CATError,pError)
{
//HRESULT rc = CATReturnError(new BuildErr("error022"));
//AfxMessageBox(errormessage);///显示错误信息
CATDlgNotify * pPromptBox = new CATDlgNotify((CATApplicationFrame::GetApplicationFrame())->GetMainWindow(), "提示", CATDlgNfyInformation);  
pPromptBox->SetText("数据源联接失败,请检查您的数据服务是否正常!!");  
pPromptBox->SetVisibility(CATDlgShow);
return;
}
CATEndTry;


捕捉不到错误!!

请各位高手帮忙,谢谢!!
作者: horizan    时间: 2007-7-19 17:16
关注!
作者: chengongcumt    时间: 2007-7-19 22:04
标题: 求助
还请大家多关照啊!谢谢!!在VC MFC程序中很容易实现的错误捕捉,在这儿就没有解决的思路了,急!!
作者: chengongcumt    时间: 2007-7-20 10:37
好了,问题已经解决了!谢谢大家的关注!
作者: horizan    时间: 2007-7-20 16:55
请教,怎么解决的?
作者: chengongcumt    时间: 2007-7-20 21:32
在用到数据库连接的CPP文件头加:
#ifndef XHMACROS_H
#define XHMACROS_H   
#endif

然后就可以用 一般vc程序中的try  catch了(见最上面的程序)

不过此时 CATTry  CATCatch 好像又不能用了。不过这个对我现在的工程还影响不是很大。有谁知道请进一步指导!

谢谢!!
作者: horizan    时间: 2007-7-20 23:06
可以#include "CATError.h"
然后catch( CATError &ComError )得到CATIA的ERROR.
作者: chengongcumt    时间: 2007-7-21 08:25
标题: 谢谢horizon
非常感谢horizon兄!以后还请多指教啊!
作者: horizan    时间: 2007-7-21 21:37
不,别客气。还要多谢你,这个问题困扰我好久了。
作者: huangsteve    时间: 2007-7-22 18:33
我很很干兴趣,楼主是否有兴趣担任caa二次开发斑竹?
https://www.cadcaecam.com/forum/thread.php?fid=42

联系邮箱 huangsteve@163.com
msn     huangsteve@163.com
作者: chengongcumt    时间: 2007-7-22 21:58
呵呵。我对CAA也很陌生,只是结合课题需要作了一点工作,斑竹自然是不能胜任的,这里有很多学长、专家呢。大家以后多交流。




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3