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( |