>Estoy estudiando el ejemplo de Martín Salias, "Un Servidor de Datos Economico",
>
>http://www.utmag.com/Spanish/July2002/Page22.asp
>[SNIP]
>
>en el cual el componente recibe como parametro un string, y luego lo ejecuta.Primero:
Validar parámetros antes de ejecutar a ciegas (detallado en nota abajo)
>La idea es tener una forma de ejecutar un pequeño proceso, y no solo un comando, en la máquina del servidor.
>De hecho, funciona perfectamente.
>Sé que debo tener cuidado de no utilizar ningún elemento visual, y mantenerlo libre de estado (stateless).
>Lo primero es relativamente sencillo de lograr, pero no estoy muy seguro como asegurarme de mantener libre de estado al componente.
>Si en el texto que mando ejecutar defino variables locales, ¿estoy infrigiendo el stateless?Sólo si el pedido que llega refiere o depende de un pedido anterior. Si no es autocontenido, el segundo pedido no tiene forma de saber que se habia hecho en uno anterior de este mismo usuario (por no mantener estado).
>El manejo de errores, ¿puedo hacerlo dentro del proceso, o debo atraparlo e informar, de alguna manera, con el string de retorno, cual ha sido el error, para que lo maneje el cliente?Al no poder mostrar nada en forma visual en un DLL-COM, es poco lo que puedes hacer internamente. Lo común es informar al cliente con un string de error (texto, valor de retorno de error, o XML, etc.)
Nota: La línea en el ejemplo:
&tcCommand
es para fines demostrativos. En una aplicación real,
nunca corras una sentencia directamente de un parámetro sin validar (especialmente sentencias SQL). Es importante cerrar los agujeros de seguridad y ese es enorme. Lo mismo obviamente para parámetros pasados a EXECSRIPT().
HTH