一个COM+中数据库异常的问题(另有50分在另外的帖子中) ADO 的异常处理都是你那样作的,看看是不是其他地方的问题,如Error()那个函数。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 zero100真感谢你的指引,原文是这样的: try{ _variant_t vNewCurstomID; pConn->Open(lpszConnstr, "", "", -1); pQueryRs->Open(_T("Select top 1 iCustomerID FROM Custom ORDER BY iCustomerID DESC"), lpszConnstr, adOpenKeyset, adLockOptimistic, adCmdText); vNewCurstomID = pQueryRs->GetCollect(_T("iCustomerID")); pQueryRs->Close(); pRs->Open(_T("CustomEx"), (IDispatch *)pConn, adOpenKeyset, adLockOptimistic, adCmdTable); pRs->AddNew(); pRs->Fields->GetItem("iRelateRate")->Value = *RelateRate; pRs->Fields->GetItem("iValue")->Value = *Value; pRs->Fields->GetItem("cMainPrincipal")->Value = *MainPrincipalID; pRs->Fields->GetItem("iMainLinkman")->Value = *MainLinkmanID; pRs->Fields->GetItem("iSellPointCount")->Value = *SellPointCount; pRs->Fields->GetItem("fSellSum")->Value = *SellSum; hr = pRs->Update(); pRs->Close(); pConn->Close(); } catch(_com_error &e) { if((TCHAR *)e.Description() == NULL) { Error(e.ErrorMessage(), e.GUID(), e.Error()); } else { TCHAR * lpErr; lpErr = W2A(e.Description()); <----问题在这里!在catch中不能用ATL字符串宏,因为catch不是正常退出,所导致W2A所自动分配的内存不能很好的释放使DLLHOST崩溃。 Error(lpErr, e.GUID(), e.Error()); } SetContextAbort(); return e.Error(); } SetContextComplete(); 看来你的问题解决了。真替你高兴。有机会多联系OICQ:604744email:[email protected] VC MFC 字符串修改 如何读取VIDEOHDR成员lpData成为数组 MFC在VC6.0里面怎么改程序连接的数据源? 这是什么编译问题,欢迎指点。急急急!啊急急急!分么,如果问题解决了,您想要多少?^_^ 类CPictureHolder和函数OleLoadPicture的问题 关于图象缩放 新手求救:一个关于完成端口的问题?请高手指点 关于屏幕刷新的问题 求教高手 有一个问题 关于CRichEditCtrl的保护问题 关于ASP的DLL调用问题(25分)
try{
_variant_t vNewCurstomID;
pConn->Open(lpszConnstr, "", "", -1);
pQueryRs->Open(_T("Select top 1 iCustomerID FROM Custom ORDER BY iCustomerID DESC"),
lpszConnstr, adOpenKeyset, adLockOptimistic, adCmdText);
vNewCurstomID = pQueryRs->GetCollect(_T("iCustomerID"));
pQueryRs->Close(); pRs->Open(_T("CustomEx"), (IDispatch *)pConn, adOpenKeyset, adLockOptimistic, adCmdTable);
pRs->AddNew();
pRs->Fields->GetItem("iRelateRate")->Value = *RelateRate;
pRs->Fields->GetItem("iValue")->Value = *Value;
pRs->Fields->GetItem("cMainPrincipal")->Value = *MainPrincipalID;
pRs->Fields->GetItem("iMainLinkman")->Value = *MainLinkmanID;
pRs->Fields->GetItem("iSellPointCount")->Value = *SellPointCount;
pRs->Fields->GetItem("fSellSum")->Value = *SellSum;
hr = pRs->Update();
pRs->Close();
pConn->Close();
}
catch(_com_error &e)
{
if((TCHAR *)e.Description() == NULL)
{
Error(e.ErrorMessage(), e.GUID(), e.Error());
}
else
{
TCHAR * lpErr;
lpErr = W2A(e.Description()); <----问题在这里!在catch中不能用ATL字符串宏,因为catch不是正常退出,所导致W2A所自动分配的内存不能很好的释放使DLLHOST崩溃。
Error(lpErr, e.GUID(), e.Error());
} SetContextAbort();
return e.Error();
} SetContextComplete();
真替你高兴。
有机会多联系
OICQ:604744
email:[email protected]