Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Servidor de Datos con Vfp y Com+
Message
De
07/04/2004 18:35:47
 
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
COM/DCOM et OLE Automation
Titre:
Servidor de Datos con Vfp y Com+
Divers
Thread ID:
00893129
Message ID:
00893129
Vues:
73
Hola a todos
Estoy estudiando el ejemplo de Martín Salias, "Un Servidor de Datos Economico",

http://www.utmag.com/Spanish/July2002/Page22.asp

en el cual el componente recibe como parametro un string, y luego lo ejecuta.
Con la idea de ampliar un poco la funcionalidad del componente, hice lo siguiente:


DEFINE CLASS Executor AS Session OLEPUBLIC

*!* Procedimiento del ejemplo de Martín
PROCEDURE SqlCommand( tcCommand as String ) as String

local lcReturn
lcReturn = ""

Close Databases all
Set Path To v:\Samples\MiniServer

&tcCommand

If Empty( Alias() ) or Reccount() = 0
* Nada que hacer

Else
CursorToXML( Alias(), "lcReturn", 1, 1 + 8, 0, "1")
endif

Return lcReturn
ENDPROC

*!* Procedimiento agregado
PROCEDURE ScriptCommand( tcCommand as String, ;
tuParam1 as Variant, ;
tuParam2 as Variant, ;
tuParam3 as Variant, ;
tuParam4 as Variant ;
) as String ;
HELPSTRING "Ejecutar un Conjunto de Comandos"


Return=EXECSCRIPT( tcCommand, ;
tuParam1, ;
tuParam2, ;
tuParam3, ;
tuParam4 )
ENDPROC

ENDDEFINE



El texto que contiene tcCommand lo genero en el cliente, con el comando:

 
TEXT TO lcTexto NOSHOW TEXTMERGE PRETEXT 7
.....
.....
.....
ENDTEXT


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?
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?
En definitiva: ¿Estoy infringiendo alguna regla de oro? ¿Que precauciones debo tener al confeccionar el texto con los comandos?

Desde ya, muchas gracias por cualquier sugerencia o aclaración.
Ricardo Aidelman
Software Developer
Praxis Computación
Buenos Aires, Argentina
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform