首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

数据库的牛牛们,什么情况?解决方案

2012-08-13 
数据库的牛牛们,什么情况?C/C++ codevectorupvalue::iterator itervectorupvalue::iterator iendfor

数据库的牛牛们,什么情况?

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数据库,总有其他方法代替吧
[解决办法]
探讨
囧。。。
m_conn->Execute 是不是这个function,看看connection是一直开着吗?笔数太多造成timeout ?

或者只open了没close造成connection数量过多超过SQL Server设定?

btw,不建议用这种循环的方式一笔笔跑10w的资料去update数据库,总有其他方法代替吧

[解决办法]
while (iter!=iend)

。。循环体内请使用异常保护,try catch,否则1条失败全崩溃
}

另外此类更新,至少需要增加一个最后更新时间列
[解决办法]
而且即使使用循环执行,也最好,把m_conn->Execute放在循环体外面,一次提交所有的更新sql语句到数据库执行
[解决办法]
探讨
引用:
而且即使使用循环执行,也最好,把m_conn->Execute放在循环体外面,一次提交所有的更新sql语句到数据库执行

我要查找其它文件中的哪些数据需要更新,如果是全部更新我也没必要放循环进去

热点排行