Используйте Server.MapPath в строках подключения к базе данных

Последнее обновление 12 апр. 2025 г.

Dreamweaver UltraDev больше не поддерживается, а центр поддержки Dreamweaver UltraDev больше не обновляется. Функция, предоставлявшаяся в Dreamweaver UltraDev, теперь доступна в Dreamweaver, начиная с Dreamweaver MX. Соответственно, мы перемещаем соответствующий контент в центр поддержки Dreamweaver. См. версию этой технической заметки для Dreamweaver: Использование Server.MapPath в строках подключения к базе данных (Техническая заметка 19065).

Цель метода MapPath объекта ASPServer — преобразовать логическую информацию о пути, которая может использоваться клиентским браузером, в физический путь на сервере. Пользователи часто используют эту функцию ASP при работе с OLEDB и строками подключения ODBC DSNless.

Если у вас есть файловая база данных, удаленно подключенная к серверу, необходимо знать полный путь к этой базе данных для использования буквальной строки подключения к базе данных. Однако иногда требуется получить доступ к такой базе данных, но при этом нельзя рассчитывать на физический путь к файлу. Чтобы найти физический путь к файлу, можно использовать метод Server.MapPath. Его единственный параметр — это виртуальный или относительный путь к файлу.

Если передаваемый параметр начинается с прямого или обратного слеша, Server.MapPath предполагает, что требуется полный физический путь, который соответствует полному виртуальному пути. Если параметр пути не начинается ни с какого слеша, тоServer.MapPath предполагает, что требуется физический путь относительно местоположения вызывающего ASP-файла. Для целей строки подключения к базе данных требуется полный физический путь.

UltraDev 4 предлагает возможность использованияServer.MapPath в строках подключения к базе данных. В следующих примерах показан допустимый синтаксис в таких строках.

  • Строки подключения DSNless (ADO)
    • Стандартная строка подключения: "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\inetpub\wwwroot\ud\asp\UltraDev.mdb"
    • Строка подключения MapPath: "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/ud/asp/UltraDev.mdb") & ";"
  • Строки подключения OLEDB
    • Стандартная строка подключения: "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\inetpub\wwwroot\ud\asp\UltraDev.mdb"
    • Строка подключения MapPath: "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/ud/asp/UltraDev.mdb")

Использование драйвера на сервере приложений по сравнению с локальной машиной (Windows)

При определении пользовательской строки подключения в UltraDev у вас есть возможность использовать драйвер на сервере приложений или на локальной машине.

Примечание. Этот параметр недоступен в версии UltraDev для Macintosh. Все соединения используют сервер приложений.

В версии для Windows вы должны выбрать Использование драйвера на сервере приложений при использовании подхода Server.MapPath.

При использовании объекта Server ASP он может быть вызван только через веб-сервер и сервер приложений. Это метод соединения, используемый при выборе Using Driver on Application Server. Выбор параметра Using Driver on Local Machine обеспечивает подключение к базе данных напрямую через ODBC; веб-сервер и, следовательно, сервер приложений ASP не задействуются.

Допустимо выбрать Using Driver on Application Server, когда сервер находится на той же машине, что и UltraDev, как при использовании Personal Web Server.

Примечание. В UltraDev 4 больше нет соединения «Время выполнения» и «Время разработки». Если необходимо использовать Server.MapPath для соединения времени выполнения, та же строка соединения должна также применяться к среде разработки.

На следующем изображении показано диалоговое окно, используемое для определения пользовательской строки соединения в UltraDev с использованием Server.MapPath и одного из примеров строки соединения, показанных выше.

Диалоговое окно для определения пользовательской строки соединения в UltraDev