Проблема классического доступа к базе данных ASP - PullRequest
0 голосов
/ 27 июля 2011

Мне нужно использовать Classic ASP с Access.Это требование к сожалению.В настоящее время у меня есть скрипт, который подключается к базе данных Access просто отлично.Вот фрагмент кода:

Set adoCon = Server.CreateObject("ADODB.Connection")

adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db1.mdb")

Set rsGuestbook = Server.CreateObject("ADODB.Recordset")

strSQL = "SELECT * from table1;"

rsGuestbook.Open strSQL, adoCon

Опять же, этот фрагмент отлично работает, записи отправляются в браузер.

Когда я применяю это соединение к другому сценарию, я получаю сообщение об ошибке, в котором говорится: Ошибка компиляции Microsoft VBScript '800a0415' Ожидаемая литеральная константа Const ConnectionString = "DRIVER = {Драйвер Microsoft Access (* .mdb)} DBQ =" & Server.MapPath ("db1.mdb")

Вотфрагмент соединения:

Const ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db1.mdb")  

Цените любые указания, которые кто-нибудь может мне дать, я знаю, что это какая-то старая школа, кто-нибудь еще помнит, когда этот материал был на грани?LOL Я делаю ...

1 Ответ

1 голос
/ 27 июля 2011

Не используйте константу для вашей строки подключения.Поскольку Server.MapPath является неопределенным (пути могут меняться от одного прогона к следующему), Const жалуется.Или он может жаловаться на любую конкатенацию при назначении константы, точно не помню ...

Вместо этого измените:

Const ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db1.mdb")   

на:

Dim ConnectionString 
ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db1.mdb")   
...