Ado连接数据库,变量每条记录组装成XML效率问题!!
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");*/
}请问有什么可以优化的
...全文
相关推荐
ADO实现连接数据库方法
尽管ADO建立在较为底层的OLE DB之上,但它提供了更加简单易用的API接口,使得即使是那些对OLE DB或者COM不熟悉的人也能轻松地使用ADO来进行数据库操作。
mfc下ADO和DAO连接数据库
你可以创建一个XML或ini格式的配置文件,存储数据库连接信息,然后在程序运行时读取这些信息,动态构建连接字符串。
ODBC、OLE DB和ADO简单介绍
了解这些技术的特点和优缺点,可以帮助开发者更好地选择数据库连接方式,提高开发效率。
ASP 的 Database Access 组件通过 ADO
JDBC(Java Database Connectivity)是Java连接数据库的标准API。与ASP中的ADO类似,JDBC也提供了连接、查询和操作数据库的能力。
用ADO连接数据库
#### 2.3 ADO连接技术##### 2.3.1 ODBC连接ODBC(Open Database Connectivity)是一种开放的标准应用程序接口(API),用于在应用程序与多个数据库管理系统之间进行通信


数据库
