RESPONDER UNA PREGUNTA

Si para responder la pregunta, crees necesario enviar un archivo adjunto, puedes hacerlo a traves del correo [email protected]

    Pregunta:  4063 - VISUAL BASIC & ORACLE / OBJECTS FOR OLE
Autor:  Jose Ignacio Gonzalez Lorente
Tengo un problema de perdida de memoria trabajando con:
- W. NT
- Visual Basic 5.0
- Oracle 8.0
Mi problema consiste en que cada vez que creo un Dynaset dentro de un Timer
el programa va ganando memoria, hasta el punto de que como este se ejecuta
las 24 horas, mi sistema se satura, teniendo que resetear cada dos dias.
He probado a desconectarme y volver a conectarme a la BD. Oracle, en cada bucle
de ejecucion, ganando algo, pero sin llegar a solucionar el problema.
No se si estoy haciendolo bien, el caso es que me han hablado de tecnicas de
programacion para Liberar Memoria, y de tecnicas para Objects for OLE, pero
soy incapaz de encontrarlas.
Gracias de antemano.
Hago una cosa como esta:
Dim OraSession As Object
Dim OraDatabase As Object
Dim MsgDynaset As Object
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase(DatabaseAlias, Usuario & "/" & Clave, 0&)
OraDatabase.Parameters.Add "PResolucion", 0, 2
Set MsgDynaset = OraDatabase.DBCREATEDYNASET(sql$, &H8&)
Do While Not MsgDynaset.EOF
kk = Trim$(Str(MsgDynaset.Fields("X")))
kk1 = Trim$(Str(MsgDynaset.Fields("Y")))
sql = "begin Proc_almacenado(" + kk + ",´" + kk1 + "´); commit; end;"
DoEvents
OraDatabase.DBEXECUTESQL (sql)
MsgDynaset.Delete
MsgDynaset.DbMoveNext
loop
MsgDynaset.close
Set MsgDynaset=Nothing


Nombre
Apellidos
Correo
Comentarios