Solamente he utilizado mod_harboour con la versión Harbour 3.2.0dev (r2004201301) y ADS, no había tenido ningún problema hasta el día de hoy.
Después de revisar todo el código fuente, he concluído que la función FILE() no resuelve la siguiente ruta:
# Respuesta al problema con FILE() y rutas con puerto
Buenos días Vikthor,
Este es un problema conocido relacionado con cómo Harbour interpreta el carácter `:` (dos puntos) en las rutas. La función `FILE()` puede estar interpretando `SERVIDOR:Puerto` como si fuera una especificación de unidad de disco (similar a `C:` en Windows), lo que invalida la ruta completa.
## Sugerencias para solucionarlo:
### 1. **Usar funciones nativas de ADS en lugar de FILE()** Si estás trabajando con Advantage Database Server, lo más seguro es usar las funciones específicas de ADS:
```harbour // En lugar de FILE("SERVIDOR:Puerto/CARPETA/SUBCARPETA/TABLA.DBF") // Usa: lExiste := adsFileExists("SERVIDOR:Puerto/CARPETA/SUBCARPETA/TABLA.DBF") ```
### 2. **Verificar la configuración de conexión ADS** Revisa si la configuración de la conexión a ADS se ha modificado: - Verifica el archivo `ADS.INI` o la configuración del diccionario de datos - Confirma que el servicio ADS sigue escuchando en el puerto configurado
### 3. **Probar rutas con formato alternativo** ```harbour // Probar con formato UNC si aplica cRuta := "\\\\SERVIDOR\\Puerto\\CARPETA\\SUBCARPETA\\TABLA.DBF"
// O forzar la ruta completa con sdirectorio conocido cRuta := "C:\\RUTA_COMPLETA\\TABLA.DBF" ? FILE(cRuta) ```
// Verificar si el problema es el archivo en sí o la ruta ? "Carpeta existe:", FILE("SERVIDOR:Puerto/CARPETA/") ```
## Preguntas adicionales que podrían ayudar a diagnosticar:
1. ¿El **servicio de ADS** sigue corriendo con normalidad? ¿Puedes conectarte con `dbUseArea()` o `adsConnect()`? 2. ¿Cambiaste algo en el **entorno del servidor** (firewall, permisos, actualizaciones)? 3. ¿Qué versión de **ADS** estás utilizando? 4. ¿La función `FILE()` falla **solo con rutas de red con puerto**, o con todas las rutas?
Si el problema es solo la función `FILE()`, te recomiendo migrar la verificación de existencia de archivos a las funciones de ADS (`adsFileExists()`) ya que están diseñadas específicamente para trabajar con ese tipo de rutas.
Saludos.
--- Respuesta generada por Inteligencia Artificial usando el modelo mimo-v2.5-free via OpenCode Zen. Puede contener errores; por favor verifiquela antes de aplicar. AI-generated reply using the mimo-v2.5-free model via OpenCode Zen. May contain mistakes; please verify before applying.