20 de enero de 2003

ExecScript para código en tiempo de ejecución (RUNTIME)

¿Necesitas ejecutar sentencias de código almacenadas en campos memo o quizás codificadas en el momento? La función ExecScript() fué incorporada en Microsoft Visual FoxPro 7, con el afan de darle mas posibilidades al desarrollador. A continuación unos ejemplos de cómo usarlo.

Si tuvieramos una tabla con campos memo en la que incluyeramos Scripts para cualquier cosa (por ejemplo, una consulta SELECT-SQL + ciclos SCAN .. ENDSCAN para producir un cursor de los productos mejor vendidos por conceptos de ganacias), podemos mandarla a ejecutar con esta funcion.
ExecScript(tabla.codigo)
Puedes tambien tener un EditBox que quieras utilizar para ejecutar código que realice mantenimiento a bases de datos:
ExecScript(Thisform.EditBox1.Value)
Pero inclusive, si tuvieramos como código script que necesitara parámetros, se los podemos mandar utilizando los argumentos opcionales de la función ExecScript, los cuales serán tomados como parámetros al interpretarse tu código.

Hay que hacer notar que esto lleva implícito que se tratará al script como si fuera una función, por lo que no es necesario incluirle la cláusula FUNCTION o PROCEDURE. El valor devuelto por el script será mandado como el resultado de la función ExecScript.
< Tabla.Codigo >
***********************************
* Parametros: tcTabla -> Tabla a consultar
*                       tcCodigo -> Codigo a buscar
*                       tcMensaje -> Mensaje a Mostrar
***********************************
LPARAMETERS tcTabla, tcCodigo

Return MESSAGEBOX("Buscar código: "+tcCodigo + ", en tabla:"+tcTabla,32+4,tcMensaje)
****** < Fin de código de Tabla.Codigo > 

lnOpcion = ExecScript(tabla.codigo,"Ventas","0001","Buscar información")
Esto nos deja con un abanico de posibilidad enormes para hacer que nuestros sistemas puedan crecer y poderse auto-modificar según los requerimientos de tu cliente.

Se tiene además de esto, otras opciones disponibles y gratuitas:

1.- Utilizar la clase CodeBlock, la cual es muy util y tiene muchas funciones incorporadas.

--- CodeBlock Class --
http://www.cycla.com/software/codeblock.htm

2.- El método propuesto por Pablo Roca:

--- Ejecutar sentencias de Fox puestas en un campo memo ---
http://comunidadvfp.blogspot.com/2003/10/ejecutar-sentencias-de-fox-puestas-en.html

Espero les haya servido.

Espartaco Palma Martínez

No hay comentarios. :

Publicar un comentario