如题,在JAVA跟VC中我都有遇到这个问题,VC中,建立一个全局变量的连接,由于要频繁的去操作数据库,为了效率考虑,操作了就不去关闭它,但是问题来了,如果频繁的操作数据库,服务器上面这个链接所占的内存就会一直增加,每次操作的时候我有去释放结果集,不知道这样写对不对
_RecordsetPtr rs;
rs=m_pConnection->Execute(strSql.GetBuffer(),&RecordsAffected,adCmdText);
if (rs!=NULL)
{
rs.Release();
rs=NULL;
}
请大家帮忙看看!!!!

解决方案 »

  1.   

    连接数据库是以ADO的方式连接的
      

  2.   

    _ConnectionPtr m_pConnection;m_pConnection.CreateInstance(__uuidof(Connection)); 
    try                 
    {


    m_pConnection->Open("Provider=OraOLEDB.Oracle;Data Source=oracle9i;","×××","×××××",adModeUnknown);

    }
    catch(_com_error &e)
    {

    AfxMessageBox("Connect Database error!");


         return FALSE;
      

  3.   

    首先内存变大是很正常的,但是也要看变大到什么程度,如果内存变大很多,而且释放SESSION后,内存还依旧很大,建议做STATSPACK分析看看
      

  4.   

    JAVA中也一样,所以我才跑来这边问问看
      

  5.   


    直接把你的语句写到finally就行了吧
    finally
    {
       if(rs !=null)
        rs.close();
    }