El problema es el aumento de memoria en un programa D7 / Firebird 2.5
1) En el formulario A se pulsa un botón que abre el formulario B.
2) Al abrir el formulario B, se crean dos queries y una tabla temporal (TRxMemoryData de RxLIb) con sus respectivos DataSource.
3) Al cerrar el formulario B, se cierran y destruyen los queries, la tabla temporal y los DataSource:
query1.close;
query1.free;
datasource1.free;
Utilizo una función, que encontré en internet, para revisar la memoria, antes y después de abrir el formulario B. Cada vez que se cierra el formulario B, el uso de memoria aumenta.
Esto hace que, después de varias veces de abrir el formulario B, se produzca un error de memoria:
Violación de acceso en la dirección 00000000. Leer de dirección 00000000
function CurrentProcessMemory: Cardinal; var MemCounters: TProcessMemoryCounters; begin MemCounters.cb := SizeOf(MemCounters); if GetProcessMemoryInfo(GetCurrentProcess, @MemCounters, SizeOf(MemCounters)) then Result := MemCounters.WorkingSetSize else RaiseLastOSError; end;
¿Qué puede estar causando el aumento de uso de memoria?
Hasta pronto.