我用VC中的MFC ODBC静态打开数据库,当程序每次执行到m_pSet->Open()时内存增加约1~2M,可是执行m_pSet->Close()时内存增加约0.2M左右。多次操作造成内存剧增,最后程序越来越慢。请大家帮助一下我!

解决方案 »

  1.   

    你根本没开 ACCESS
    关于此主题请参考:
        新手来看:Access的特点、概念。什么是纯 ACCESS 环境?《其他》
        http://access911.net/index.asp?u1=a&u2=79FAB51E12DC
      

  2.   

    看了你的文章,知道我根本就没有用ACCESS。可是如果你知道我想问的问题,还是请直接回答吧,在你的文章里没有我想要的答案。谢谢
      

  3.   

    楼主,可以在m_pSet->Close();后加一句m_pSet->Release();试试
      

  4.   

    mikewolfli(冰峰雪古) :不行,根本不是成员函数!   CDravodSet* m_pSet;//程序生成的默认指针,指向CRreocord类    if (m_pSet->IsOpen()) 
        {
             m_pSet->Close();
        }
        m_pSet->Open();
        ……
        ……
        m_pSet->Close();
        
        我跟踪了一下。程序在执行Open()时我step into到
        PrepareAndExecute();时内存剧增。
        AFX_SQL_SYNC(::SQLFreeStmt(m_hstmt, SQL_DROP));时减少一点。
    这两句话我不明白什么意思。有人说可能是没有用SQL的原因
      

  5.   

    一定不是Open()的问题,很可能是new了recordset类对象的指针,没有正确释放。