WINCE下数据库编程Execute(...)函数消耗内存问题

ascendentcgc   2009-3-30 13:24 楼主
我在实现
ADOCE3.1+SQLCE2.0/SQLCE3.0
或OLEDB+SQL2.0/SQLCE3.0
每次运行到Execute()进行数据添加删除更新查询等所有功能后.平均调用2-3次就会扣除4096B大小的内存.
请问一下如何把这扣除的内存释放?..

回复评论 (4)

如何?
看看自己的程序是否有内存泄露
点赞  2009-3-30 16:59
没有的就到了这里内存就少了.有时扣0有时扣4096
点赞  2009-3-30 17:19
定义        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;
        }
我都是看着微软的例子做的.
点赞  2009-3-30 17:21
所有功能都是这种现象..SQLCE3.0更严重了.是不是要组件升级还是怎么的?还是本来就会出现这种现象.ADOCE和OLEDB是分开2个人写的.都一句一句代码检测内存了.时漏时不漏.2种方法都是Execute那出问题?
点赞  2009-3-30 17:30
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复