Ado连接数据库,变量每条记录组装成XML效率问题!!

版主大哥 版主大哥 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
int ret = res.Open((LPCTSTR)strSql.c_str());

int nnn = 0;

if (ret)
{
long lFileds = res.GetFieldsCount(); //列数
if (lFileds > 0)
{

while (1)
{
if (res.IsEOF())
{
break;
}
TiXmlElement* pRow = m_outXml.AddXmlChildElement(pDataElementOut,"R");
int yy = GetTickCount();

int i = 0;
CString strFieldValue;
for (i = 0;i < lFileds;i++)
{
strFieldValue.Empty();
res.GetCollect(i,strFieldValue);
m_outXml.AddXmlChildElement(pRow,res.GetFieldName(i).GetBuffer(),strFieldValue.GetBuffer());
/* TiXmlElement* pRow = m_outXml.AddXmlChildElement(pDataElementOut,"test");*/
}
int nT = GetTickCount() - yy;
nnn += nT;
res.MoveNext();
}
m_outXml.ReplaceElementAttribute(pDataElementOut,"Flag","1");
m_outXml.ReplaceElementValue(pErrMsgElementOut,"");
nRet = 0;
res.Close();
}


代码如上,当记录10000条以上(有18列)这个过程需要4-5秒

观察到只是在一下的for循环消耗了时间
for (i = 0;i < lFileds;i++)
{
strFieldValue.Empty();
res.GetCollect(i,strFieldValue);
m_outXml.AddXmlChildElement(pRow,res.GetFieldName(i).GetBuffer(),strFieldValue.GetBuffer());
/* TiXmlElement* pRow = m_outXml.AddXmlChildElement(pDataElementOut,"test");*/
}


请问有什么可以优化的
...全文

相关推荐

评论 16
收藏 已收藏
分享
返回顶部
版主大哥
数据库 4,017 成员 39,805 内容