error 7 - memory low

31/07/2003 - 22:57 por Luis Cabrera Aldui | Informe spam
Hola a todos espero puedan responderme rapidamente porq lo necesito, tengo
un sistema q esta echo en visual basic 6.0 sp 5, trabajo con bd access
resulta q mientras se va trabajando en el sistema de un momento a otro sale
el error 7 memoria insuficiente, al parecer mientras avanza el trabajo en el
sistema no libera memoria, a q se puede deber este error y cual es la
solucion mas viable, espero me puedan responderlo mas pronto posible gracias


Luis Orlando Cabrera Aldui
ealdui@hotmail.com
aldui@yahoo.com.ar

Preguntas similare

Leer las respuestas

#1 Victor Koch
31/07/2003 - 23:14 | Informe spam
Tendrías que liberar los objetos que ya no usas, por ejemplo los formularios
los descargas o los vas ocultando, ocultar un formulario no es lo mismo que
descargarlo por ende consumen recursos.

Un saludo, Víctor Koch.


"Luis Cabrera Aldui" escribió en el mensaje
news:
Hola a todos espero puedan responderme rapidamente porq lo necesito, tengo
un sistema q esta echo en visual basic 6.0 sp 5, trabajo con bd access
resulta q mientras se va trabajando en el sistema de un momento a otro


sale
el error 7 memoria insuficiente, al parecer mientras avanza el trabajo en


el
sistema no libera memoria, a q se puede deber este error y cual es la
solucion mas viable, espero me puedan responderlo mas pronto posible


gracias


Luis Orlando Cabrera Aldui




Respuesta Responder a este mensaje
#2 Luis Cabrera Aldui
31/07/2003 - 23:26 | Informe spam
los descargo no los oculto es mas en el unload del formulario pongo "set
frm=noting" de igualmanera hago con los recordset "set Rs=noting" ahora no
se si funciona el noting o no
Luis Orlando Cabrera Aldui


Respuesta Responder a este mensaje
#3 Victor Koch
31/07/2003 - 23:36 | Informe spam
Bueno, el set frm=noting seguro que no te va a funcionar, pero el set
frm=nothing a mi me funciona.
Tendrías que revisar el código y asegurarte que estas cerrando todos los
recordset y demás yerbas, otro tema a tener en cuenta es ver cuantos
formularios minimizados en tu aplicación tiene el usuario.

Un saludo, Víctor Koch.


"Luis Cabrera Aldui" escribió en el mensaje
news:
los descargo no los oculto es mas en el unload del formulario pongo "set
frm=noting" de igualmanera hago con los recordset "set Rs=noting" ahora no
se si funciona el noting o no
Luis Orlando Cabrera Aldui




Respuesta Responder a este mensaje
#4 gustavo gutierrez
01/08/2003 - 00:22 | Informe spam
a todo esto...Cuanto tienes de ram?

"Luis Cabrera Aldui" escribió en el mensaje
news:
Hola a todos espero puedan responderme rapidamente porq lo necesito, tengo
un sistema q esta echo en visual basic 6.0 sp 5, trabajo con bd access
resulta q mientras se va trabajando en el sistema de un momento a otro


sale
el error 7 memoria insuficiente, al parecer mientras avanza el trabajo en


el
sistema no libera memoria, a q se puede deber este error y cual es la
solucion mas viable, espero me puedan responderlo mas pronto posible


gracias


Luis Orlando Cabrera Aldui




Respuesta Responder a este mensaje
#5 Leonardo Azpurua
01/08/2003 - 03:14 | Informe spam
"Luis Cabrera Aldui" escribió en el mensaje
news:
los descargo no los oculto es mas en el unload del formulario pongo "set
frm=noting" de igualmanera hago con los recordset "set Rs=noting" ahora no
se si funciona el noting o no
Luis Orlando Cabrera Aldui



Hola, Luis:

Dices que en Unload del formulario pones "Set frm = Noting"?

Estás trabajando con Option Explicit? Si no estás haciédolo, comienza tan
pronto como puedas.

No ganas nada con intentar poner un formulario a Nothing desde dentro del
formulario. Tendrías que escribir "Set Me = Nothing", que es sospechosamente
parecido a un intento de suicidio, con el agravante de que nunca dará
resultado.

La secuencia para utilizar un formulario es:

Set frm = New frmClass
With frm
... ...
End With
Unload frm
Set frm = Nothing

De todas maneras, no debe ser eso: hay que escribir un código ingeniosamente
perverso para impedir que los objetos se destruyan, bien porque se sale del
ámbito de vida de todas sus referencias, bien porque se asigna una nueva
referencia a la variable que contenía la referencia anterior.

Lindas maneras de quedarse sin memoria son las listas doblemente enlazadas,
o las estructuras de tipo árbol bidireccional, en las cuales un objeto A
tiene una referencia a un objeto B que tiene una referencia al objeto A. Si
no limpias ese tipo de estructura cuidadosamente, acabas con unas
referencias circulares que impiden la destrucción de los objetos. Asignar a
las referencias externas de tales estructuras nuevas referencias, sin
limpiar las anteriores, es una forma segura de quedarse sin memoria a corto
plazo.

Me parece recordar que hace unos años, cuando comencé con VB, tenía una
aplicación que declaraba unos objetos de tipo Recordset globales (DAO
3.5/Access 97). Cuando cerraba uno de ellos, escribía "objRecordset.Close",
y para abrirlos nuevamente escribía "Set objRecordset dbHandle.OpenRecordset(..)". En teoría, al asignar el nuevo objeto a la
misma variable, la referencia anterior se perdía, posibilitando así la
destrucción del recordset cerrado. En la práctica, sin embargo, hasta que no
agregué "Set objRecordset = Nothing" despues de llamar a Close sobre el
mismo objeto, la aplicación no dejó de cascar cada veinte o treinta minutos
(despues de exhibir un pésimo comportamiento durante varias operaciones).

Como norma general, todos los objetos deben ser explícitamente destruídos
tan pronto como terminen de cumplir su misión.

Otra opción es que puedas estar utilizando algún componente "de mala
calidad", como una DLL que reclame memoria del sistema (con cosas como
GlobalAlloc) y que luego no la devuelva como Dios manda (los sistemas
operativos tienden a no ser tan amables y comprensivos como VB). Pero como
no nos cuentas qué es lo que estás haciendo o utilizando, no podemos
adivinar. Las funciones que devuelven cadenas son las primeras sospechosas.

En todo caso, si de algo puedes estar seguro es que si tu memoria se está
reduciendo es porque estás bebiendo en exceso.. (perdón, no pude resistir la
tentación), quiero decir, porque no estás haciendo lo necesario para
liberarla cuando ya no la necesitas.

Salud!

Leonardo
[MS MVP - VB]
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida