我在实现
ADOCE3.1+SQLCE2.0/SQLCE3.0
或OLEDB+SQL2.0/SQLCE3.0
每次运行到Execute()进行数据添加删除更新查询等所有功能后.平均调用2-3次就会扣除4096B大小的内存.
请问一下如何把这扣除的内存释放?..
没有的就到了这里内存就少了.有时扣0有时扣4096
定义 HRESULT hr = NOERROR;
IDBInitialize *pIDBInitialize = NULL;
IDBCreateCommand *pIDBCrtCmd = NULL;
ICommandText *pICmdText = NULL;
IDBProperties *pIDBProperties = NULL;
DBPROP dbprop[1];
DBPROPSET dbpropset[1];
释放 SysFreeString(dbprop[0].vValue.bstrVal);
VariantClear(&dbprop[0].vValue);
if(pICmdText)
{
pICmdText->Release();
}
if(pIDBCrtCmd)
{
pIDBCrtCmd->Release();
}
if(pIDBInitialize)
{
pIDBInitialize->Release();
}
if (pIDBProperties)
{
pIDBProperties->Release();
}
调用Execute
hr = pICmdText->Execute(NULL, IID_NULL, NULL, NULL, NULL);
if(FAILED(hr))
{
// AfxMessageBox(L"添加失败",MB_OK);
goto Exit;
}
我都是看着微软的例子做的.
所有功能都是这种现象..SQLCE3.0更严重了.是不是要组件升级还是怎么的?还是本来就会出现这种现象.ADOCE和OLEDB是分开2个人写的.都一句一句代码检测内存了.时漏时不漏.2种方法都是Execute那出问题?