数据库的牛牛们,什么情况?
- C/C++ code
vector<upvalue>::iterator iter; vector<upvalue>::iterator iend; for (int i=0;i<num;i++) { tempNo=DanWeiNo.GetAt(i); iter=ValueLIST.begin(); iend=ValueLIST.end(); while (iter!=iend) { if (iter->csDWNo==tempNo) { strSQL.Format("update Person set JDDM='%s',JDMC='%s',REGION='%s' where OrderNo='%s'and companyNo='%s'",iter->csJDDM,iter->csJDMC,iter->csReGion,m_OrderNo,iter->csDWNo); m_conn->Execute((_bstr_t)strSQL,NULL,adCmdText); } iter++; } }
更新数据有100000左右,大概到5 6万的样子就会奔了?问题在那里
[解决办法]
C++的?难道出现死锁了 你在查询语句中WITHNOLOCK试试
[解决办法]
感觉不需要使用循环来update啊
[解决办法]
。。。
m_conn->Execute 是不是这个function,看看connection是一直开着吗?笔数太多造成timeout ?
或者只open了没close造成connection数量过多超过SQL Server设定?
btw,不建议用这种循环的方式一笔笔跑10w的资料去update数据库,总有其他方法代替吧
[解决办法]
[解决办法]
while (iter!=iend)
{
。。循环体内请使用异常保护,try catch,否则1条失败全崩溃
}
另外此类更新,至少需要增加一个最后更新时间列
[解决办法]
而且即使使用循环执行,也最好,把m_conn->Execute放在循环体外面,一次提交所有的更新sql语句到数据库执行
[解决办法]