PRB: ошибка 80004005 "Ядро СУБД Microsoft Jet не удается открыть файл (неизвестно)"

Симптомы

При использовании объектов данных ActiveX (ADO) или ODBC для подключения к базе данных Microsoft Access может появиться следующее сообщение об ошибке:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet database engine cannot open the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view its data.

Причина

Это сообщение об ошибке может быть вызвано несколькими причинами:

  • Учетная запись, используемая microsoft Internet Information Server (IIS) (обычно это IUSR), не имеет правильных разрешений на Windows NT для файловой базы данных или папки, содержащей файл.
  • Файл и имя источника данных помечаются как эксклюзивные.
  • База данных Access открыта для другого процесса или пользователя.
  • Ошибка может быть вызвана проблемой делегирования. Проверьте метод проверки подлинности (базовый или NTLM), если он есть. Если строка подключения использует универсальное соглашение об именовании (UNC), попробуйте использовать обычную проверку подлинности или абсолютный путь, например C:\Mydata\Data.mdb. Эта проблема может возникнуть, даже если UNC указывает на ресурс, который является локальным для компьютера IIS.
  • Эта ошибка также может возникнуть при доступе к локальной базе данных Microsoft Access, связанной с таблицей, в которой таблица находится в базе данных Access на сетевом сервере.

Разрешение

Приведенные ниже элементы соответствуют предыдущему списку причин:

  • Проверьте разрешения для файла и папки. Убедитесь, что у вас есть возможность создавать и (или) удалять временные файлы. Временные файлы обычно создаются в той же папке, что и база данных, но файл также может быть создан в других папках, например в папке WINNT.

    Если используется сетевой путь к базе данных (UNC или сопоставленный диск), проверка разрешения на общую папку, файл и папку.

  • Убедитесь, что файл и имя источника данных (DSN) не помечены как эксклюзивные.

  • Другим пользователем может быть Microsoft Visual InterDev. Закройте все проекты Visual InterDev, содержащие подключение к базе данных.

  • Упростить. Используйте системное имя DSN, использующее букву локального диска. При необходимости переместите базу данных на локальный диск для тестирования.

Ссылки

Чтобы проверка ошибок доступа к файлам, используйте монитор файлов Windows NT. Сведения о том, как скачать монитор файлов, см. в разделе Windows Sysinternals.