Ошибка подключения представления MS SQL Server 2005 с запросом MS Access 2003

#sql #sql-server #ms-access #connection-string

#sql #sql-сервер #ms-access #строка подключения

Вопрос:

Проблема: не удалось найти устанавливаемый ISAM

Я выполняю запрос из MS Access, чтобы получить информацию из MS SQL Server 2005. Когда я пытаюсь напрямую открыть связанное ODBC-соединение с таблицей, оно открывается без проблем. Однако, когда я пытаюсь создать соединение без DSN, я получаю ошибку ISAM.

При попытке выполнить свой запрос у меня возникает следующая ошибка SELECT :

«Не удалось найти устанавливаемый ISAM».

Код, который я использую, выглядит следующим образом:

 SELECT * FROM [Driver={SQL Server};
   Server=Server_NameInstance;
   Database=Database_Name;
   Integrated Security=SSPI;].[My_View_Name]
 

Справка от MS Access содержит следующую информацию:

Не удалось найти устанавливаемый ISAM. (Ошибка 3170) Не удалось найти DLL для устанавливаемого файла ISAM. Этот файл необходим для связывания внешних таблиц (кроме таблиц базы данных ODBC или Microsoft Jet). Местоположения для всех драйверов ISAM сохраняются в реестре Microsoft® Windows®. Эти записи создаются автоматически при установке приложения. Если вы измените расположение этих драйверов, вам необходимо скорректировать программу установки приложения, чтобы отразить это изменение и внести правильные записи в реестр.

Возможные причины:

Запись в реестре недопустима. Например, эта ошибка возникает, если вы используете внешнюю базу данных Paradox, а вход Paradox указывает на несуществующий каталог или драйвер. Выйдите из приложения, исправьте реестр Windows и повторите попытку.

Одна из записей в реестре указывает на сетевой диск, и эта сеть не подключена. Убедитесь, что сеть доступна, а затем повторите операцию.

Я также нашел статьи KB от Microsoft, объясняющие, когда и как это следует обрабатывать. Однако мне неясно, действительно ли они коренятся в другом типе проблем.

Например:

283881 и 209805 Скажите мне, что цель ISAM — указать, как форматировать данные, отличные от собственного форматирования MS Access. (Но я не хочу форматировать его по-другому, а в других форматах не указано, что я считаю подходящим форматом-er)

и 90111 сообщает нам, что драйвер в файле .ini может указывать на неправильное место в MS Access 2.0, которого больше нет в версии 97 .

Странно то, что у меня есть настройка без DNS для другой таблицы, которая работает нормально. Единственное различие, которое я вижу здесь, заключается в том, что имя объекта базы данных по умолчанию не является стандартным, поэтому, возможно, я неправильно ссылаюсь на схему в своем синтаксисе.

  • Что я здесь делаю не так? Действительно ли это синтаксическая ошибка?*
  • Существуют ли какие-либо соображения о разрешении «просмотра», которые необходимо учитывать на стороне сервера?

Ответ №1:

Попробуйте добавить ODBC; в начале строки подключения и убрать скобки вокруг имени представления:

 SELECT * FROM [ODBC;Driver={SQL Server};
Server=Server_NameInstance;
Database=Database_Name;
Integrated Security=SSPI;].My_View_Name