Buenos Días:
Antes que nada gracias por su tiempo.
Estoy desarrollando una aplicacion en VC++, en realidad en MFC.
Esta aplicacion tiene un spool de trabajo en el que corren una cantidad de trabajos(threads), en paralelo, y otros esperan por un lugar.
En general en cada trabajo realizo operaciones sobre una Base de Datos, para lo cual , al instanciar el trabajo le paso como parametro un puntero a la conexión.
Luego en el metodo que se ejecuta en el Trabajo, creo un comando y un recorset con:
Código:
_CommandPtr pCmd_SP;
pCmd_SP.CreateInstance(__uuidof(Command));
//establezco conex con comando
pCmd_SP->ActiveConnection = pConn;
// seteo sql
CString instruccion = "execute dbo.sp_llamadas_actuales_uno @id_empleado=";
instruccion = instruccion + id_empleado ;
pCmd_SP->CommandText = (_bstr_t) instruccion ;
// Create the variant NULL
_variant_t vNull;
vNull.vt = VT_ERROR;
vNull.scode = DISP_E_PARAMNOTFOUND;
// creo el Rs
_RecordsetPtr pRs_SP;
pRs_SP.CreateInstance(__uuidof(Recordset));
pRs_SP->CursorLocation = adUseClient;
pRs_SP->PutRefSource(pCmd_SP);
Al terminar el Trabajo, hago un recorset.Close() y luego destruyo el hilo.
Problema
Mi problema es que la aplicacion va incrementando la memoria en forma proporcional al trabajo realizado, e intuyo que es por no liberar algun objeto. Puede ser asi ????
PD: no agregue el cod de la creacion y eliminación del hilo por la complejidad del mismo.
Ojala se entienda el problema.
Saludos