FoxPress – Julio-Agosto 2005

 

Conexión de red

 

 

            Por la Redacción de FoxPress

 

 

En las aplicaciones que corren en red, un problema frecuente es que la máquina cliente sea capaz de localizar al servidor donde se encuentran los datos.

 

            Para eso se puede poner en la máquina cliente una dirección fija (p.ej: F:\Servidor), pero nos encontramos con el problema de que quizás en alguna ocasión el servidor no esté disponible con lo que puede desaparecer ese acceso directo si el usuario se equivoca en las opciones que debe escoger.

 

            Además ultimamente hay cada vez más redes inalambricas y este tipo de redes tardan un tiempo hasta que están disponibles después de poner en marcha la máquina. Por eso me decidí a usar UNC y en vez de las funciones de Fox que no realizan bien esta operación, acudí al 'Shell.Application'

 

            El código que pongo a continuación te crea una UNC de una dirección de Red y no desaparece nunca si la guardas en algún sitio como el Registry

 

lcPathServer = ""

 

#DEFINE BIF_returnonlyfsdirs      0x0001 && allow the user to select only folders

 

oShell = CREATEOBJECT('Shell.Application')

 

*- Si existe el WSH (Windows Scripting Host)

IF TYPE('oShell') = 'O' AND NOT ISNULL(oShell)

       oBrowFolder = oShell.BrowseForFolder(0x0000, 'Seleccione Directorio', BIF_returnonlyfsdirs)

       IF TYPE('oBrowFolder') = 'O' AND NOT ISNULL(oBrowFolder)

              lcPathServer = oBrowFolder.Items().Item().Path

       ENDIF

ELSE

       lcPathServer = LOWER(GETDIR("C:\mi aplicación", "Seleccione Directorio"))

ENDIF

             

IF UPPER(right(lcPathServer,6)) = 'DATOS\'

       lcPathServer = left(lcPathServer, len(lcPathServer) -6)

ENDIF

IF UPPER(right(lcPathServer,5)) = 'DATOS'

       lcPathServer = left(lcPathServer, len(lcPathServer) -5)

ENDIF

 

 

FoxPress – Julio - Agosto de 2005