PDA

Ver la Versión Completa : out of memory con tablas en memoria


jrmanso
20-06-2007, 01:20:17
hola
tengo un problema con las tablas en memoria agradecco cualquier idea por adelantado.

tengo un proceso de carga de un fichero txt a la base de datos
cargo una tabla en memoria con un campo de 39 caracteres
para tener los registros que vienen en el txt y sacar en un segundo proceso
informe de los registros que estan en la base de datos y no vienen en la carga. (necesito tenerlos para despues buscarlos)
los registros varian entre 14000 y 20000 (que no son tantos)

bueno el problema es el siguiente:
estaba usando un Memory table de las RX pero desciende de TDBDataSet y necesita el BDE instalado (cosa que quiero evitar).
entonces use el RxMemoryData que desciende de TDataSet y empezaron los problemas cuando van 900 o 1000 registros da out of memory
probe con otro componente TkbmMemTable que tambien desciende de TDataSet y da el mismo problema


la tabla la cargo:
.
.

// Se carga la Tabla para el segundo proceso
if not MDC.TMAUX.Locate( 'NOPERACION', NumOper,[])then begin
MDC.TMAUX.Append ;
MDC.TMAUXNOPERACION.value := NumOper;
MDC.TMAUX.Post;
end;
.
.


no veo porque con un componente no da el error y con los otros si
¿gestionan la memoria de manera distinta ?
alguna idea

mensana
20-06-2007, 08:03:59
...usando un Memory table ...
...entonces use el RxMemoryData ...
...probe con otro componente TkbmMemTable ...


Otra alternativa: Prueba a usar otro gestor de memoria (no es un dataset en memoria) : FastMM

Casimiro Notevi
20-06-2007, 08:54:00
Deberías verificar tu programa, estoy seguro que no es fallo de la tabla en memoria, yo uso esas mismas y manejo millones de registros sin problema.

jrmanso
20-06-2007, 09:36:37
Gracias mensana y casimiro por vuestro tiempo
un dato que no di uso Delphi 7 y firebird 1.5

casimiro lo que me estraña es que con uno funcione y con los otros no

mensana que version recomiendas o se esta usando cuando entro a descargar aparece la 2.x, 3.x y 4.x en todas pone que son estables
hay alguna que de problemas

mensana
20-06-2007, 09:42:12
que version recomiendas o se esta usando cuando entro a descargar aparece la 2.x, 3.x y 4.x en todas pone que son estables
hay alguna que de problemas

Usa la 4.XX, de hecho, es el gestor de memoria standard en Delphi2006 (creo)

Casimiro Notevi
20-06-2007, 11:11:12
[..]use el RxMemoryData que desciende de TDataSet y empezaron los problemas cuando van 900 o 1000 registros da out of memory
probe con otro componente TkbmMemTable que tambien desciende de TDataSet y da el mismo problema
casimiro lo que me estraña es que con uno funcione y con los otros no
Disculpa, había entendido que tenías el mismo problema con ambos.
Si con uno funciona y con el otro no, entonces está claro que es problema del componente o de uso del mismo.

jrmanso
20-06-2007, 17:32:09
hola de nuevo y gracias
casimiro el uso es el mismo en los dos componentes no le doy un trato distinto lo unico que hago es cambiar el componente y darle el mismo nombre y no cambio ni una linea de codigo.

he usado tres componentes el que no me da out of memory es el que desciende de TDBDataSet y necesita el BDE

Casimiro Notevi
20-06-2007, 20:47:53
Pues no sé, yo uso los magníficos TkbmMemtable de components4developers (http://www.components4developers.com/) desde antes que existiera como empresa, alrededor de 1999, y jamás he tenido la más mínima queja de ellos.

jrmanso
20-06-2007, 21:57:37
Bueno muchas gracias a todos por el interes y el tiempo :)
He probado como indico mensana las FASTMM y se soluciono el problema
lo que me lleva a pensar que esiste algun problema para gestionar la memoria de estas tablas en delphi 7 lo que no se es por que


Repito muchas graciassss............