Estimados:
Me conecto a un servicio de factura electronica. Lo hago mediante:
oWSAA:=TOleAuto():New("WSAA")
Todo funciona ok, Pero necesito chequear si el componente esta instalado en el equipo (para capturar el error cuando este en produccion la aplicacion).
Si instancio un componente inexistente, por ejemplo:
oWSAA:=TOleAuto():New("WS???AA")
no hay, TRY CATCH , ON ERROR (de la clase) o errorhandler que capture el hecho de que el componente no existe.
No encontre cual podria ser la variable de instancia del objeto Ole enn cada caso
En un viejo post encontré: "Empty( oOle:__hObj ) devuelve .T. si no se ha podido instanciar."
Pero tampoco funcionó ( este post es de la era en que xailer estaba en xHarbour)
Cualquier ayuda, link o pista sera bienvenido.
Claudio
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
TOleauto - Componente instalado ?
Re: TOleauto - Componente instalado ? [fin]
Me respondo a mi mismo. Quizá a alguien le sirva.
ToleAuto no tiene método o propiedad que indique si el objeto instanciado se vinculó o no a una dll registrada en la PC ( o al menos yo no pude encontrarlo )
Lo que sí pude hacer es una solicitud al objeto a manipular, (luego de crear el ole). Ahí sí, cuando el objeto ole es válido, funciona y si no se instanció, entra al catch.
La línea que produce el 'catch' es:
ok := ::oWSAA:ObtenerTagXml('test') donde instancio un metodo del objeto ole
Muy primitivo pero, aparentemente, funciona.
NOTA: sobre el área izquierda, el debug muestra el mensaje exacto de lo que pasa ¿ Puede capturarse ese mensaje?
ToleAuto no tiene método o propiedad que indique si el objeto instanciado se vinculó o no a una dll registrada en la PC ( o al menos yo no pude encontrarlo )
Lo que sí pude hacer es una solicitud al objeto a manipular, (luego de crear el ole). Ahí sí, cuando el objeto ole es válido, funciona y si no se instanció, entra al catch.
La línea que produce el 'catch' es:
ok := ::oWSAA:ObtenerTagXml('test') donde instancio un metodo del objeto ole
Muy primitivo pero, aparentemente, funciona.
NOTA: sobre el área izquierda, el debug muestra el mensaje exacto de lo que pasa ¿ Puede capturarse ese mensaje?
- ignacio
- Site Admin
- Mensajes: 9344
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: TOleauto - Componente instalado ?
Código: Seleccionar todo
TRY
....
lOk := .t.
CATCH
lOk := .f.
END
Re: TOleauto - Componente instalado ?
Claudio,
el comando CATCH puede recibir un objeto error:
el comando CATCH puede recibir un objeto error:
Código: Seleccionar todo
LOCAL oError
...
TRY
...
CATCH oError
MsgError( oError:Description )
END