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 |