Usar Server.MapPath en cadenas de conexión de base de datos

Última actualización el 12/04/2025

Dreamweaver UltraDev ya no se admite, y el centro de asistencia para Dreamweaver UltraDev dejará de actualizarse de forma activa. Las funciones disponibles en Dreamweaver UltraDev están disponibles en Dreamweaver, comenzando con Dreamweaver MX. Por consiguiente, estamos trasladando el contenido pertinente al centro de soporte de Dreamweaver. Consulta la versión para Dreamweaver de esta nota técnica: Usar Server.MapPath en cadenas de conexión de base de datos (TechNote 19065).

El propósito del método MapPath del objeto Servidor de ASP es convertir la información de ruta lógica que podría usar un explorador cliente en una ruta física en el servidor. Los usuarios a menudo aprovechan esta función de ASP cuando usan cadenas de conexión DSNless de OLEDB y ODBC.

Si tienes una base de datos basada en archivos montada remotamente en tu servidor, debes conocer la ruta completa a esa base de datos para poder usar una cadena de conexión literal de base de datos. Sin embargo, habrá ocasiones en las que quieras acceder a dicha base de datos, pero no podrás contar con la ruta física del archivo. Para encontrar la ruta física de un archivo, puedes usar el método Server.MapPath. Su único parámetro es la ruta virtual o relativa del archivo.

Si el parámetro que pasas comienza con una barra diagonal hacia adelante o hacia atrás, Server.MapPath asume que quieres la ruta física completa que se asigna a la ruta virtual completa. Si el parámetro de ruta no comienza con ninguna barra diagonal, entonces Server.MapPath asume que quieres la ruta física en relación con la ubicación del archivo ASP que realiza la llamada. Para propósitos de cadenas de conexión de base de datos, se requiere la ruta física completa.

UltraDev 4 ofrece la capacidad de usar Server.MapPath en cadenas de conexión de base de datos. Los siguientes ejemplos ilustran la sintaxis aceptable en dichas cadenas.

  • Cadenas de conexión DSNless (ADO)
    • Cadena de conexión estándar: "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\inetpub\wwwroot\ud\asp\UltraDev.mdb"
    • Cadena de conexión MapPath: "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/ud/asp/UltraDev.mdb") & ";"
  • Cadenas de conexión OLEDB
    • Cadena de conexión estándar: "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\inetpub\wwwroot\ud\asp\UltraDev.mdb"
    • Cadena de conexión MapPath: "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/ud/asp/UltraDev.mdb")

Uso del controlador en servidor de aplicaciones frente a máquina local (Windows)

Al definir una cadena de conexión personalizada en UltraDev, tiene la opción de usar un controlador en el servidor de aplicaciones o en la máquina local.

Nota: Esta opción no está disponible en la versión de Macintosh de UltraDev. Todas las conexiones usan el servidor de aplicaciones.

En la versión de Windows, debes seleccionar Usar controlador en servidor de aplicaciones cuando utilices el método Server.MapPath.

Al usar el objeto Server ASP, solo se puede invocar a través de un servidor web y de aplicaciones. Este es el método de conexión que se usa cuando se selecciona Using Driver on Application Server. Al seleccionar Using Driver on Local Machine se conecta a la base de datos directamente a través de ODBC; el servidor web, y por tanto el servidor de aplicaciones ASP, no se invocan.

Es aceptable seleccionar "Using Driver on Application Server" cuando el servidor reside en la misma máquina que UltraDev, como cuando se usa Personal Web Server.

Nota: En UltraDev 4, ya no hay conexión "Run Time" y "Design Time". Si debes usar Server.MapPath para tu conexión Run Time, la misma cadena de conexión también debe aplicarse a tu entorno de diseño.

La siguiente imagen muestra el cuadro de diálogo usado para definir una cadena de conexión personalizada en UltraDev usando Server.MapPath y uno de los ejemplos de cadena de conexión mostrados arriba.

Cuadro de diálogo usado para definir una cadena de conexión personalizada en UltraDev