• Jueves 14 de Noviembre de 2024, 16:48

Autor Tema:  Re: vb6 pierde memoria con ADO y SQL  (Leído 1836 veces)

gponisio

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
    • http://www.thesoftplaters.com.ar
Re: vb6 pierde memoria con ADO y SQL
« en: Lunes 13 de Enero de 2003, 16:20 »
0
Hola:
Yo tengo el siguiente problema

Yo he construído el siguiente código con vb6 sp5 an sql 7 sobre

windows 2000  prof SP2 en el cliente y el SQL en un Windows 2000

server SP2

Mi aplicación necesita obtener información actualizada de la base

de datos cada .5 segundos. y cada vez se envía una consulta que es

distinta a la anterior
El código que escribí es algo así:
...
Private m_rs as recordset
...
...
Form_Load
   Set m_Rs = New Recordset
   m_Rs.CursorLocation = adUseClient
   m_Rs.LockType = adLockPessimistic
   m_Rs.CursorType = adOpenKeyset
   m_Rs.ActiveConnection=m_cnn 'Some connection opened
End sub   
...
Sub Timer1_Timer
   m_Rs.Source = SQL 'some query variable ever distinct
   m_Rs.Open
   'some activity
   ...
   m_Rs.Close
   
End Sub
Luego de algún tiempo que depende de los tipos de consultas

enviados
el código en el cliente comienza a consumir recursos de memoria, a

veces muy lentamente, hasta que para una aplicación que debe estar

funcionando durante varios días, esta deja de funcionar  por falta

de memoria
Yo creo que mi código no tiene errores.

Quizás ustedes tengan este bug, pero no lo noten ya que si la

aplicación funciona solo durante 8 hs diarias, al finalizar el día

se vuelven a recuperar los recursos de memoria, y el proceso

vuelve a comenzar al encenderla el día siguiente.

Recueden que esta aplicación debería estar funcionando las 24 Hs

del día todos los días.

La única manera, luego de cientos de pruebas, en la que tuve éxito

para evitar el consumo de recursos, es utilizando procedimientos

almacenados.

Pero por ahora quisiera intentar evitar esto ya que me obligaría a

realizar un gran trabajo sobre el sistema



Cualquier sugerencia es bienvenida
                            Muchas gracias
                            Gustavo
                            http://www.thesoftplaters.com.ar

Jaume

  • Miembro MUY activo
  • ***
  • Mensajes: 151
    • Ver Perfil
vb6 pierde memoria con ADO y SQL
« Respuesta #1 en: Lunes 13 de Enero de 2003, 16:52 »
0
Para liberar memoria no es suficiente cerrar el objeto

m_Rs.Close

Hay que ponerlo a Nothing para eliminarlo de la memoria

m_Rs=Nothing

Creo que por ahí viene el problema. Estas creando un montón de recordsets sin liberar memoria, hasta que se llena y peta.

Espero que sea esto

Salu2