首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

就一个插入代码,为什么内存占到1G多啊解决方案

2012-03-19 
就一个插入代码,为什么内存占到1G多啊。strSQLselect * from aaADOQuery1-SQL-Clear()ADOQuery1-SQ

就一个插入代码,为什么内存占到1G多啊。
strSQL="select * from aa";
  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add(strSQL);
  ADOQuery1->Active=true;
  ADOQuery1->Append();
  ADOQuery1->FieldByName("Stationnum")->AsString=tmpStr.SubString(10,5);
  ADOQuery1->FieldByName("Inserttime")->AsString=srFileTime;
  ADOQuery1->FieldByName("ObservTime")->AsString=tmpStr.SubString(20,14);
  ADOQuery1->FieldByName("ObservTimeMin")->AsString=tmpStr.SubString(30,2);
  ADOQuery1->FieldByName("ND")->AsString=list2->Strings[49];
  ADOQuery1-> Post();
  ADOQuery1->Close();
  delete list2;
  strSrcDir=yy->Strings[0];
  strDstDir=yy->Strings[2];
  ProcessFiles(strSrcDir, strDstDir,strFileName,tmpStr);

就是把把TXT内容处理到sql,怎么处理一个文件要1G内存,大约30秒呢

[解决办法]
单步跑一下,看看哪一句代码最耗时?
[解决办法]

探讨
strSQL="select * from aa";
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(strSQL);
ADOQuery1->Active=true;
ADOQuery1->Append();
ADOQuery1->FieldByName("Stationnum")->AsString=tmpStr.SubSt……

[解决办法]
同意xjq2003,where 1=0 是差不多记录,记录数是0,0记录不占用内存或者资源极小的内存。
而之前的sql语句,加载表中全部记录到内存中。

热点排行