如下代码,运行 程序,SQL内存不断增加,搞不懂原因!?求帮助_RecordsetPtr pRs;
char buf[255]; sprintf(buf,"SELECT * FROM CHNCV");
pRs.CreateInstance(__uuidof(Recordset));
HRESULT hr=pRs->Open(buf,theApp.m_pConnect.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
if(SUCCEEDED(hr))
{
pRs->AddNew();
CString chpos;
for(int i = 0; i < (MAX_CHANNEL_NUM + 2); i++)
{
for(int j = 0; j < 15; j++)
{
chpos.Format("CH%d_CV%d", i+1,j+1); pRs->PutCollect((_variant_t)chpos,*(m_lpbReceiveBuf + pos + i*15 + j));
}
}
pRs->Update();
}
if (pRs->State==adStateOpen)
{
pRs->Close();
pRs.Release();
}
if (theApp.m_pConnect->State==adStateOpen)
{
theApp.m_pConnect->Close();
theApp.m_pConnect.Release();
}
char buf[255]; sprintf(buf,"SELECT * FROM CHNCV");
pRs.CreateInstance(__uuidof(Recordset));
HRESULT hr=pRs->Open(buf,theApp.m_pConnect.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
if(SUCCEEDED(hr))
{
pRs->AddNew();
CString chpos;
for(int i = 0; i < (MAX_CHANNEL_NUM + 2); i++)
{
for(int j = 0; j < 15; j++)
{
chpos.Format("CH%d_CV%d", i+1,j+1); pRs->PutCollect((_variant_t)chpos,*(m_lpbReceiveBuf + pos + i*15 + j));
}
}
pRs->Update();
}
if (pRs->State==adStateOpen)
{
pRs->Close();
pRs.Release();
}
if (theApp.m_pConnect->State==adStateOpen)
{
theApp.m_pConnect->Close();
theApp.m_pConnect.Release();
}
我确定释放了内存,代码中以体现出来。
内存大概在30几M 的时候缓慢向上增长。
vc ADO方式 访问数据库,使用addnew putcollect update 函数应该没有错误吧?
会不会访问数据库的方式 ado不适合呢