Power Builder - Problemas de memoria con los OLE

 
Vista:

Problemas de memoria con los OLE

Publicado por Esther (1 intervención) el 29/11/2004 18:51:20
Trabajo con OLE para conectarme a Excel y leer hojas xls. Tengo problemas con la memoria. Una vez que he terminado libera la memoria pero no la memoria virtual. Por otro lado cuando leo hojas muy grandes, crece lo que ocupa power builder y al final me quedo sin memoria. ¿Hay alguna forma de que libere la memoria virtual?.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problemas de memoria con los OLE

Publicado por fastdid (3 intervenciones) el 12/05/2016 19:59:08
Antes de Instanciar el Objeto Ole Excel, debes:

1.- liberar la memoria virtual de win7 y liberar hilos de conexión compartida:

GarbageCollect();//Libera memoria virtual
Destroy tu_oleob;//Destruye objeto activo previo

2.- Minimizas todas las ventanas activas de otros procesos Excel desde PB:

1. Declaras en Local External Functions:
SUBROUTINE keybd_event (Long bvk, Long bScan, Long dwFlags, Long dwExtraInfo) library "USER32.DLL"

2. Script en PB:

1
2
3
4
5
6
7
8
9
10
11
12
Long KEYEVENTF_KEYUP
Long VK_LWIN
 
//En VB, se tenía: Const KEYEVENTF_KEYUP = &H2 
KEYEVENTF_KEYUP = 2
//En VB, se tenía: Const VK_LWIN = &H5B 
VK_LWIN = 91
 
// ASC('M')--->77 
keybd_event (VK_LWIN, 0, 0, 0)
keybd_event (ASC("M"), 0, 0, 0)
keybd_event (VK_LWIN, 0, KEYEVENTF_KEYUP, 0)

3.- Si, aún existen otras instancias de Excel previas compartidas , deberás informar al usuario que el aplicativo no debe tener instancias activas de Excel y si esta de acuerdo botarlas desde un bat u otro método dll desde power:

por Ejemplo con un bat(liberaexc.bat):

@echo off

TASKKILL /F /IM EXCEL.EXE

y lo llamas desde power. El problema que pasa con lo último es que te mataría instancias activas de Excels que necesitarías.

Espero haber ayudado en algo.

Salud2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar