Proxy acceso desde Internet a procedimientos de VFP

Posted on junio 2, 2010

0



Para llamar desde ASP a Visual Foxpro, se puede usar un proxy, y asi no es necesario recrear las DLL cada vez que hay un cambio, sino simplemente compilar un FXP y colgarlo al directorio correcto. Eso simplifica y evita problemas con actualizaciones posteriores. 

El planteamiento es el siguiente:Se genera un proyecto, añadiendo un PRG con el ejemplo siguiente  que tiene una clase olepublic. Luego se compila el proyecto para generar una DLL multithead. Pongamos que el proyecto se llama ProxyFoxLuego se puede llamar desde VBScript o similar: 

Set oProxyfox = Server.createobject(“ProxyFox.ProxyFox”)
lcValorDevuelto = oProxyfox.Ejecutar(“nombrefuncion()”,”nombreydirectoridelprograma.FXP”)
Set oProxyfox=Nothing
 

Este sistema se puede perfecccionar añadiendo un Servicio de componentes que defina la DLL del proxy y se le especifique limitaciones de aplicaciones abiertas concurrentemente, y así optimizar los recursos del servidor. 

Ejemplo PRG del proxy   

Define class ProxyFox as session olepublic
   Function ejecutar( cComando as String , cProgramafxp as String )   

   SET DECIMALS TO 2
   SET CPDIALOG OFF
   SET RESOURCE off
   SET EXCLUSIVE OFF
  
   Set procedure to &cProgramafxp
   PUBLIC xRetVal   

   xRetVal = &cComando   

   Set procedure to   

   If !empt(cProgramFile)
      Clear program &cProgramafxp
   Endif

   Return xRetVal   

   Function Init()
      Set resource off
      Set cpdia off
      Set dele on
      Set exclu off
      Set safe off
      =SYS(2339,0)
      SYS(2335,0)   
      SET REPROCESS TO 4 SECONDS   
   Return dodefa()
Enddefine