在一个回调函数内做image类型的存储工作,用的odbc,recordset方式,数据集在程序初始化时已经open,在程序关闭时close,在回调函数内做以下操作,图像内容存在pBuf指针所指的内存内,长度为nSize,现在的问题是回调函数2-3秒调用一次,函数内存持续增长,请问是存储image数据类型这段有错误还是因为recordset未关闭导致的内存增长。
 imagealarmpic.AddNew();
 imagealarmpic.m_column2.m_hData=::GlobalAlloc( GHND ,nSize);   
 ASSERT(imagealarmpic.m_column2.m_hData != NULL);   
 BYTE*   pBuffer=(BYTE*)GlobalLock(imagealarmpic.m_column2.m_hData);   
 ASSERT(pBuffer   !=   NULL);   
 memcpy(pBuffer,pBuf,nSize);
 imagealarmpic.SetFieldNull(&imagealarmpic.m_column2,FALSE);//设置记录为NULL;
 imagealarmpic.SetFieldDirty(&imagealarmpic.m_column2);//标志数据库已经修改;   
 imagealarmpic.Update();  
   
  ::GlobalUnlock(imagealarmpic.m_column2.m_hData);   
  HGLOBAL hhh = ::GlobalFree(imagealarmpic.m_column2.m_hData);   
  
  imagealarmpic.m_column2.m_dwDataLength=0;   
  imagealarmpic.m_column2.m_hData=NULL;