Вопрос или проблема
SQL Server 2012 – Access 32-бит 2003 – Я могу импортировать базу данных, но не понимаю, почему не могу её связать. Возможно, в SQL 2012 изменили строку подключения или что-то в этом роде.
Я только что установил SQL Server 2012, чтобы протестировать различия и убедиться, что он подходит для моей работы. Я, возможно, не являюсь профессионалом в SQL, но не понимаю, как добавить ссылку на базу данных Jet на своем сервере. Я импортировал базы данных Jet, но, проходя через графический интерфейс пользователя, чтобы связать базу данных JET, я не вижу провайдера для JET. Я использую Access 2003 (мне не нравится графический интерфейс 2008 и выше).
Я искал и не нашел ничего похожего на мою проблему; по крайней мере, ничего, что я бы понял. Нигде не упоминается, как добавить провайдер базы данных Jet.
Я запустил строку подключения к базе данных Jet через QA:
sp_addlinkedserver 'USGEScrub', 'Access', 'Microsoft.Jet.OLEDB.4.0',
'D:\Lead$\SupList\USGEScrub.mdb'
Строка подключения работает, пока я не пытаюсь получить доступ к данным, и затем я получаю эту ошибку, и, конечно, если я нажимаю ссылки, ничего не отображается:
TITLE: Microsoft SQL Server Management Studio
Не удалось получить данные для этого запроса. (Microsoft.SqlServer.Management.Sdk.Sfc)
Для помощи, нажмите: http://go.microsoft.com/fwlinkProdName=Microsoft%20SQL%20Server&LinkId=20476
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Произошло исключение при выполнении Transact-SQL или пакета инструкций.
Невозможно создать экземпляр OLE DB провайдера “Microsoft.Jet.OLEDB.4.0” для связанного
сервера “USGEScrub”. (Microsoft SQL Server, ошибка: 7302)Для помощи, нажмите: http://go.microsoft.com/fwlinkProdName=Microsoft%20SQL%20Server&ProdVer=11.00.2100&EvtSrc=MSSQLServer&EvtID=7302&LinkId=20476
выглядит как проблема с драйверами.
Вот мнение Microsoft по этому вопросу: http://support.microsoft.com/kb/2555855
Ответ или решение
Для того чтобы установить соединение между SQL Server 2012 и Microsoft Access 2003, требуется внимательное изучение изменений в конфигурации и использования необходимых драйверов. Ваши усилия по импорту базы данных уже подсказывают, что вы знакомы с основными механизмами, однако вопрос именно в интеграции остаётся открытым. Давайте рассмотрим ситуацию подробнее.
Анализ проблемы
Вы используете SQL Server 2012 и базу данных Access 2003. Основная проблема заключается в невозможности установить связанный сервер для Access, так как необходимый провайдер OLE DB "Microsoft.Jet.OLEDB.4.0", похоже, вызывает ошибки.
Возможные причины ошибки
-
Неподдерживаемый драйвер: SQL Server 2012 может иметь трудности с поддержкой 32-битного драйвера Jet. Это случается из-за различий в архитектуре (32-бит против 64-бит).
-
Недостаток компонентов OLE DB: Проверьте наличие всех необходимых компонентов OLE DB на вашем сервере.
-
Проблемы с безопасностью и разрешениями: Убедитесь, что у SQL Server есть все права на доступ к местонахождению файла Access.
Решения
Установите правильные драйверы
-
Microsoft Access Database Engine: Установите последнюю версию Microsoft Access Database Engine, чтобы обеспечить совместимость с 32-битными и 64-битными приложениями.
-
Откройте SQL Server Management Studio с административными правами, так как некоторые проблемы могут возникать из-за недостатка прав.
Настройка связанного сервера
-
Обновите ваш SQL Server с помощью обновлений, которые могли бы улучшить совместимость с Access 2003.
-
Попробуйте использовать следующий пример команды, чтобы добавить провайдера OLE DB для Access:
EXEC sp_addlinkedserver @server = 'USGEScrub', @provider = 'Microsoft.ACE.OLEDB.12.0', @datasrc = 'D:\Lead$\SupList\USGEScrub.mdb';
Управление разрешениями
Позаботьтесь о том, чтобы у учетной записи, от имени которой работает SQL Server, были все права на доступ к указанным папкам и файлам.
Заключение
Устранение сложностей в интеграции SQL Server и MS Access требует внимательности к деталям, начиная от конфигурации драйверов и заканчивая вопросами безопасности. Надеюсь, предложенные решения помогут вам в решении данной задачи. Если проблема сохраняется, рассмотрите возможность миграции к более современным версиям Access или SQL Server, которые обладают улучшенной поддержкой интеграции.