como liberar memoria despues de consulta sql

22/02/2005 - 16:27 por KE | Informe spam
Hola, estoy usando evc++ 3.0 y adoce, el problema es el siguiente:
cuando hago consultas a la base de datos y despues de cerrar el RecordSet el
espacio de la memoria no se me libera, el procedimiento que uso para cerrar
el RecordSet es el siguiente:
BOOL CAdoRecordset::Close()
{
if(m_adoRs==NULL)
{
TRACE(_T("CAdoRecordset::Close() RecordSet COM Object not
initialized"));
return FALSE;
}
m_fIsOpen = FALSE;
HRESULT hr=m_adoRs->Close();

if(m_adoRs!=NULL)
m_adoRs->Release();
m_adoRs=NULL;
return (hr==0);
}
He hecho pruebas con Pocket Access y Sybase, pero el resultado es el mismo,
el pocket se queda sin memoria cuando hago consultas muy grandes, por
ejemplo al consultar 25.000 items.
He probado en pocket PC 2002 y 2003
Gracias de antemano
 

Leer las respuestas

#1 roberthq
16/03/2005 - 21:41 | Informe spam
Me paréese que te puede servir el comando free para liberar revisa la ayuda
del Embedded.

Ej

/* MALLOC.C: This program allocates memory with
* malloc, then frees the memory with free.
*/

#include <stdlib.h> /* For _MAX_PATH definition */
#include <stdio.h>
#include <malloc.h>

void main( void )
{
char *string;

/* Allocate space for a path name */
string = malloc( _MAX_PATH );
if( string == NULL )
printf( "Insufficient memory available" );
else
{
printf( "Memory space allocated for path name" );
free( string );
printf( "Memory freed" );
}
}


"KE" wrote:

Hola, estoy usando evc++ 3.0 y adoce, el problema es el siguiente:
cuando hago consultas a la base de datos y despues de cerrar el RecordSet el
espacio de la memoria no se me libera, el procedimiento que uso para cerrar
el RecordSet es el siguiente:
BOOL CAdoRecordset::Close()
{
if(m_adoRs==NULL)
{
TRACE(_T("CAdoRecordset::Close() RecordSet COM Object not
initialized"));
return FALSE;
}
m_fIsOpen = FALSE;
HRESULT hr=m_adoRs->Close();

if(m_adoRs!=NULL)
m_adoRs->Release();
m_adoRs=NULL;
return (hr==0);
}
He hecho pruebas con Pocket Access y Sybase, pero el resultado es el mismo,
el pocket se queda sin memoria cuando hago consultas muy grandes, por
ejemplo al consultar 25.000 items.
He probado en pocket PC 2002 y 2003
Gracias de antemano

Preguntas similares