На каком сервере они работают?
Большинство новых версий Windows Server вообще не поставляются с драйвером Jet 4.0 для 64-битных систем вообще, поэтому вы не можете использовать базу данных доступа с этим драйвером, еслиВаше приложение работает как 64-битное приложение.Вы можете попробовать запустить 32-битную версию, что может решить проблему.
Существует альтернативный драйвер , упакованный как служебный компонент, который может быть дополнительным.
Попробуйте написатьпростая тестовая страница, которая буквально открывает и закрывает соединение с базой данных следующим образом:
<%
Dim conn
Set conn = Server.CreateObject("ADODB.Connection")
conn.Provider = "Microsoft.Jet.OLEDB.4.0"
conn.Open("D:/db/testingDb.mdb")
Response.Write("Database Opened OK")
conn.Close()
%>
Запустите это на рабочем сервере, и если вы увидите Database Opened OK
, то вы будете знать, что это определенно запрос, а не база данных, вызывающаяпроблема.
Если при попытке открыть базу данных возникла ошибка, вам нужно перейти на использование более нового драйвера или попробовать приложение в 32-битном режиме
В случае, если этозапрос, вызывающий проблему, возможно, вам потребуется использовать различные дополнительные аргументы для метода Open()
, чтобы попытаться использовать другой курсор (только вперед, если вам нужно только перебрать результаты один раз), что изменит способ ADODBизвлекает данные и, как мы надеемся, устраняет узкие места в производительности, связанные с запросом.
Редактировать
Если выВы хотите попробовать еще немного отладить код и добавить следующее в начале файла.Это приводит к тому, что обработчик сценариев ASP продолжает работу, даже если он сталкивается с ошибкой
On Error Resume Next
Затем с интервалами по всему файлу, где вы ожидаете ошибку, выполните
If Err <> 0 Then
Response.Write(Err.Number & " - " & Err.Description)
End If
См. эта статья из ASP 101 об основах обработки ошибок в ASP и VBScript