RESPONDER UNA PREGUNTA

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

    Pregunta:  3487 - CONEXIÓN VÍA OLE DESDE ORACLE CON MICROSOFT OFFICE
Autor:  Diego Cabero Lorenzana
Tengo un problema para cerrar el Excel desde el Developer Forms, ya que consigo trabajar con él, pero a la hora de limpiar los handles de los objetos creados para trabajar con el Excel (RELEASE) no me destruye el proceso, y cada vez que abro el Excel desde el Developer Forms y lo cierro desde el mismo Excel me queda el proceso en memoria. Utilizo el Windows NT y el Forms 6.0i.
Si alguien sabe como poder "matar" el proceso desde el Developer si hace el favor que me indique los pasos. Ahí va la forma que utilizo para abrir y cerrar el Excel:

application := OLE2.CREATE_OBJ(´Excel.Application´);
OLE2.SET_PROPERTY(application,´Visible´,´True´);

workbooks := OLE2.GET_OBJ_PROPERTY(application,´Workbooks´);

MY_ARGLIST := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(MY_ARGLIST,archivo);
workbook := OLE2.INVOKE_OBJ(workbooks,´Open´,MY_ARGLIST);
OLE2.DESTROY_ARGLIST(MY_ARGLIST);

worksheets := OLE2.GET_OBJ_PROPERTY(workbook,´Worksheets´);

MY_ARGLIST := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(MY_ARGLIST,1);
worksheet := OLE2.GET_OBJ_PROPERTY(worksheets,´Item´,MY_ARGLIST);
OLE2.DESTROY_ARGLIST(MY_ARGLIST);

indice := 1;
MY_ARGLIST := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(MY_ARGLIST,1);
OLE2.ADD_ARG(MY_ARGLIST,1);
cell := OLE2.GET_OBJ_PROPERTY(worksheet,´Cells´,MY_ARGLIST);
OLE2.DESTROY_ARGLIST(MY_ARGLIST);
OLE2.SET_PROPERTY(cell,´Value´,"Hola mundo");
indice := indice + 1;

OLE2.RELEASE_OBJ(cell);
OLE2.RELEASE_OBJ(


Nombre
Apellidos
Correo
Comentarios