C++用ADO调用MSSQL超时

bristy 2014-09-16 06:15:56
在C++中调用一个数据库中要运行2分钟左右的存储过程,差不多30秒左右就返回超时.
但是在EXCEL和控制台运行都没问题..我已经把__ConnectionPtr超时设为永不超时还是这样.
请问是不是还要设__CommandPtr为永不超时?怎么设呢?

if( m_pADOCon == NULL )
{
_snprintf(sz_msg, sizeof(sz_msg) - 1, "%s", "m_pADOCon is null...");
p_MainCwnd->SendMessage(MSG_INFO, 0, (LPARAM)sz_msg);
return FALSE;
}

_snprintf(sz_msg, sizeof(sz_msg) - 1, "Open db server %s", pHost);
p_MainCwnd->SendMessage(MSG_INFO, 0, (LPARAM)sz_msg);

m_pADOCon ->CommandTimeout = 0;

m_pADOCon ->CursorLocation = adUseClient;

HRESULT hr = -1;

char sz_strcon[512] = {0};
_snprintf(sz_strcon, sizeof(sz_strcon) - 1, "Driver={SQL Server};Server=%s;Database=%s;UID=%s;PWD=%s", pHost, pDataName, pLogin, pPsw);

hr = m_pADOCon->Open( _bstr_t(sz_strcon), "", "", adModeUnknown);
...全文
293 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐鹦鹉 2014-09-17
  • 打赏
  • 举报
回复
我也觉得应该设置到Command上,连接并不管这个事
zwfgdlc 2014-09-16
  • 打赏
  • 举报
回复
The CommandTimeout setting on a Connection object has no effect on the CommandTimeout setting on a Command object on the same Connection; that is, the Command object's CommandTimeout property does not inherit the value of the Connection object's CommandTimeout value. 用CommandPtr
_CommandPtr Cmd;
Cmd.CreateInstance(__uuidof(Command));
Cmd->CommandTimeout = 0;

4,017

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧