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