我用ADO操作Access数据库程序内存会缓慢增大,写的数据很多,运行5天增大了30M,不知道什么原因。
解决方案 »
- 多线程虚拟内存占用较大的问题
- WINDOWS核心编程22章DIPS程序的问题
- 怎样减小编译生成的exe文件的大小?
- 如何简单的从一个IXMLDOMDocument对象不通过文件方式,直接生成xml字符串流?
- 谁知道如何获取系统未分页内存池大小
- 请各位帮我找一下这个帖子
- 請問: 怎麼讓 EDIT ,CHECK ,COMBO控件在 mouse移到其上時能有 (tip) 提示(使用CToolTipCtrl)??
- 怎样调整图像的亮度、色度、饱和度和对比度?我要代码或者可用的DLL
- 我应该问什么呢?
- 100分求编程经验:请问各位高手有谁实现过类似word中的公式编辑器!
- 一个关于directshow的问题
- error C2059: syntax error : 'constant' 是什么意思?郁闷!
不过要是你Open了而没有Close这类的问题,那就比较麻烦了。看看程序里有什么东西创建了而没有释放吧。
{
rs3->Open("Select TOP 1 * from OutParam",_variant_t((IDispatch*)theApp.m_pConn,true),adOpenDynamic, adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
CString DataStr;
DataStr.Format("%s+19",e.Description());
AfxMessageBox(DataStr);
}
OutUnitInfo *p;
p=m_SystemInfo.OutUnitList->next;
while (p)
{
int OutNo=p->No;
try{
if(!rs3->Supports(adAddNew))
{
rs3->Close();
return;
}
VARIANT var;
var.vt = VT_I2;
rs3->AddNew();
var.iVal = OutNo;
rs3->Fields->GetItem(_variant_t("OutNo"))->Value=var;
var.iVal =p->Param.DCompOutPer;
rs3->Fields->GetItem(_variant_t("PWM"))->Value=var; rs3->Fields->GetItem(_variant_t("DIG"))->Value=_variant_t(p->Status.CompOn1);
rs3->Fields->GetItem(_variant_t("FIX1"))->Value=_variant_t(p->Status.CompOn2);
rs3->Fields->GetItem(_variant_t("FIX2"))->Value=_variant_t(p->Status.CompOn3);
rs3->Fields->GetItem(_variant_t("FIX3"))->Value=_variant_t(p->Status.CompOn4);
rs3->Fields->GetItem(_variant_t("WV1"))->Value=_variant_t(p->Status.WVOn1);
rs3->Fields->GetItem(_variant_t("WV2"))->Value=_variant_t(p->Status.WVOn2);
rs3->Fields->GetItem(_variant_t("WV3"))->Value=_variant_t(p->Status.WVOn3);
rs3->Fields->GetItem(_variant_t("WV4"))->Value=_variant_t(p->Status.WVOn4);
rs3->Fields->GetItem(_variant_t("SV1"))->Value=_variant_t(p->Status.SVOn0);
rs3->Fields->GetItem(_variant_t("SV2"))->Value=_variant_t(p->Status.SVOn1);
var.iVal=p->Param.EXV1;
rs3->Fields->GetItem(_variant_t("EXV1"))->Value=var;
var.iVal=p->Param.EXV2;
rs3->Fields->GetItem(_variant_t("EXV2"))->Value=var;
var.iVal=p->Param.EXV3;
rs3->Fields->GetItem(_variant_t("EXV3"))->Value=var;
var.iVal=p->Param.EXV4;
rs3->Fields->GetItem(_variant_t("EXV4"))->Value=var;
var.iVal=p->Status.FanSpeed1;
rs3->Fields->GetItem(_variant_t("FAN1"))->Value=var;
var.iVal=p->Status.FanSpeed2;
rs3->Fields->GetItem(_variant_t("FAN2"))->Value=var;
var.iVal=p->Status.FanSpeed3;
rs3->Fields->GetItem(_variant_t("FAN3"))->Value=var;
rs3->Fields->GetItem(_variant_t("HP"))->Value=_variant_t(p->Param.HPressure);
rs3->Fields->GetItem(_variant_t("LP"))->Value=_variant_t(p->Param.LPressure);
rs3->Fields->GetItem(_variant_t("TH1"))->Value=_variant_t(p->Param.TAirOut);
rs3->Fields->GetItem(_variant_t("TH2"))->Value=_variant_t(p->Param.TIn1);
rs3->Fields->GetItem(_variant_t("TH3"))->Value=_variant_t(p->Param.TMid1);
rs3->Fields->GetItem(_variant_t("TH4"))->Value=_variant_t(p->Param.TIn2);
rs3->Fields->GetItem(_variant_t("TH5"))->Value=_variant_t(p->Param.TMid2);
rs3->Fields->GetItem(_variant_t("TH6"))->Value=_variant_t(p->Param.TIn3);
rs3->Fields->GetItem(_variant_t("TH7"))->Value=_variant_t(p->Param.TMid3);
rs3->Fields->GetItem(_variant_t("TH8"))->Value=_variant_t(p->Param.TEnviroment);
rs3->Fields->GetItem(_variant_t("TH9"))->Value=_variant_t(p->Param.TOut1);
rs3->Fields->GetItem(_variant_t("TH10"))->Value=_variant_t(p->Param.TOut2);
rs3->Fields->GetItem(_variant_t("TH11"))->Value=_variant_t(p->Param.TOut3);
rs3->Fields->GetItem(_variant_t("TH12"))->Value=_variant_t(p->Param.TAirRecle);
rs3->Update();
}//try
catch (_com_error e)
{
AfxMessageBox(e.Description());
}
p=p->next;
}
rs3->Close();
以上是插入数据的一部分,每次打开的时候应该都关闭了。
{
rs3->Open("Select TOP 1 * from OutParam",_variant_t((IDispatch*)theApp.m_pConn,true),adOpenDynamic, adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
OutUnitInfo *p;
p=m_SystemInfo.OutUnitList->next;
while (p)
{
int OutNo=p->No;
try{
if(!rs3->Supports(adAddNew))
{
rs3->close()
return;
}
VARIANT var;
var.vt = VT_I2;
rs3->AddNew();
var.iVal = OutNo;
rs3->Fields->GetItem(_variant_t("OutNo"))->Value=var;
var.iVal =p->Param.DCompOutPer;
rs3->Fields->GetItem(_variant_t("PWM"))->Value=var;
rs3->Fields->GetItem(_variant_t("DIG"))->Value=_variant_t(p->Status.CompOn1);
rs3->Fields->GetItem(_variant_t("FIX1"))->Value=_variant_t(p->Status.CompOn2);
rs3->Fields->GetItem(_variant_t("FIX2"))->Value=_variant_t(p->Status.CompOn3);
rs3->Fields->GetItem(_variant_t("FIX3"))->Value=_variant_t(p->Status.CompOn4);
rs3->Fields->GetItem(_variant_t("WV1"))->Value=_variant_t(p->Status.WVOn1);
rs3->Fields->GetItem(_variant_t("WV2"))->Value=_variant_t(p->Status.WVOn2);
rs3->Fields->GetItem(_variant_t("WV3"))->Value=_variant_t(p->Status.WVOn3);
rs3->Fields->GetItem(_variant_t("WV4"))->Value=_variant_t(p->Status.WVOn4);
rs3->Fields->GetItem(_variant_t("SV1"))->Value=_variant_t(p->Status.SVOn0);
rs3->Fields->GetItem(_variant_t("SV2"))->Value=_variant_t(p->Status.SVOn1);
var.iVal=p->Param.EXV1;
rs3->Fields->GetItem(_variant_t("EXV1"))->Value=var;
var.iVal=p->Param.EXV2;
rs3->Fields->GetItem(_variant_t("EXV2"))->Value=var;
var.iVal=p->Param.EXV3;
rs3->Fields->GetItem(_variant_t("EXV3"))->Value=var;
var.iVal=p->Param.EXV4;
rs3->Fields->GetItem(_variant_t("EXV4"))->Value=var;
var.iVal=p->Status.FanSpeed1;
rs3->Fields->GetItem(_variant_t("FAN1"))->Value=var;
var.iVal=p->Status.FanSpeed2;
rs3->Fields->GetItem(_variant_t("FAN2"))->Value=var;
var.iVal=p->Status.FanSpeed3;
rs3->Fields->GetItem(_variant_t("FAN3"))->Value=var;
rs3->Fields->GetItem(_variant_t("HP"))->Value=_variant_t(p->Param.HPressure);
rs3->Fields->GetItem(_variant_t("LP"))->Value=_variant_t(p->Param.LPressure);
rs3->Fields->GetItem(_variant_t("TH1"))->Value=_variant_t(p->Param.TAirOut);
rs3->Fields->GetItem(_variant_t("TH2"))->Value=_variant_t(p->Param.TIn1);
rs3->Fields->GetItem(_variant_t("TH3"))->Value=_variant_t(p->Param.TMid1);
rs3->Fields->GetItem(_variant_t("TH4"))->Value=_variant_t(p->Param.TIn2);
rs3->Fields->GetItem(_variant_t("TH5"))->Value=_variant_t(p->Param.TMid2);
rs3->Fields->GetItem(_variant_t("TH6"))->Value=_variant_t(p->Param.TIn3);
rs3->Fields->GetItem(_variant_t("TH7"))->Value=_variant_t(p->Param.TMid3);
rs3->Fields->GetItem(_variant_t("TH8"))->Value=_variant_t(p->Param.TEnviroment);
rs3->Fields->GetItem(_variant_t("TH9"))->Value=_variant_t(p->Param.TOut1);
rs3->Fields->GetItem(_variant_t("TH10"))->Value=_variant_t(p->Param.TOut2);
rs3->Fields->GetItem(_variant_t("TH11"))->Value=_variant_t(p->Param.TOut3);
rs3->Fields->GetItem(_variant_t("TH12"))->Value=_variant_t(p->Param.TAirRecle);
rs3->Update();
}//try
catch (_com_error e)
{
CString DataStr;
DataStr.Format("%s+20",e.Description());
AfxMessageBox(DataStr);
}
p=p->next;
}
rs3->Close();以上是部分插入数据的代码,打开之后应该都关闭了。
VariantClear(&var);
试试