MFC ADO _RecordsetPtr Open 返回时间长

woshi_hujunjun 2017-06-20 12:01:46
try
{
//CLog::Write(_T("等待解锁"));
//m_mutex.Lock();
//CLog::Write(_T("解锁完成,加锁,开始执行数据查询") + bstrSqlCmd);

//打开记录集
if (FAILED(RecordSet->Open(_bstr_t(bstrSqlCmd), m_pConnection.GetInterfacePtr(),
adOpenForwardOnly/*adOpenDynamic*/, adLockOptimistic, adCmdText)))
{
CLog::Write(_T("查询失败"));
//m_mutex.Unlock();
return false;
}
isOK = true;
CLog::Write(_T("查询成功"));
//m_mutex.Unlock();
}
查询一个很小的数据,有时候返回时间长达15秒
...全文
171 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-06-22
  • 打赏
  • 举报
回复
查询太慢,加索引或删掉无用数据。
赵4老师 2017-06-22
  • 打赏
  • 举报
回复
不知道ADO连接能不能使用UDP协议。
woshi_hujunjun 2017-06-22
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
网络不稳定。 换路由。
网络确实步太稳定,用的是移动4G,再用VPN转内网,所以步太稳定
赵4老师 2017-06-21
  • 打赏
  • 举报
回复
网络不稳定。 换路由。
woshi_hujunjun 2017-06-20
  • 打赏
  • 举报
回复
m_pConnection->CommandTimeout = dbConfig.CommTimeout; m_pConnection->ConnectionTimeout = dbConfig.ConnTimeout; 两个超时时间设置为5,好像没什么用
woshi_hujunjun 2017-06-20
  • 打赏
  • 举报
回复
引用 2 楼 oyljerry 的回复:
是不是数据库本身查询很慢,这个ADO超时不会有多大效果
可能网络有时候不太稳定,ping的话,偶尔偶尔会有几个超时。 但查询7/8行数据,偶尔会出现10多秒才返回的情况,甚至30几秒返回一个错误, 我觉得错误可以理解,但要及时返回,延时这么久,是不是设置什么的 有问题
oyljerry 2017-06-20
  • 打赏
  • 举报
回复
是不是数据库本身查询很慢,这个ADO超时不会有多大效果

4,011

社区成员

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

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