Управление версиями с Подверсией является источником, к которому я обычно обращаюсь для получения информации о Подверсии. Главы 5 и 6 похожи, они могли бы получить Вас в правильном направлении.
Вы, кажется, не различаете пароль базы данных (сначала представленный в Струйных 3.0, версии Струи в A95) и Струйное имя пользователя/пароль безопасности уровня пользователя. Вашими примерами является весь последний, но Вы упоминаете пароль базы данных в своем вопросе. Только поддержки OLEDB, что (ODBC не делает), таким образом, необходимо проверить http://www.connectionstrings.com/access на строку подключения OLEDB с паролем базы данных.
После нескольких часов борьбы с этой проблемой я наконец нашел не одно, а два решения! Я использую SQL Server 2008 и Access 2000, но думаю, что решение одно и то же.
Решение 1. Используйте OPENDATASOURCE
Используйте этот подход, если вы будете нечасто обращаться к данным на связанном сервере:
select * from
OPENDATASOURCE('Microsoft.JET.OLEDB.4.0', 'Data Source=C:\MyAccessDB.mdb;User ID=Admin;Password=;Jet OLEDB:Database Password=MyDBPassword;')...MyTable
Для чтобы это работало, вам также необходимо включить опцию Ad Hoc Distributed Queries
:
exec sp_configure 'show advanced options', 1;
RECONFIGURE;
exec sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
Решение 2: Использовать связанный сервер
Как вы уже сказали, связанный сервер, похоже, не работает. Однако есть небольшая ошибка, которая заставляет все работать гладко; вам необходимо указать пароль базы данных в строке поставщика, например ; PWD = пароль
.
exec sp_addlinkedserver
@server = 'TestLinkServer',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'Access',
@datasrc = 'C:\MyAccessDB.mdb',
@provstr = ';PWD=MyDBPassword'
exec sp_addlinkedsrvlogin
@rmtsrvname = 'TestLinkServer',
@useself = 'FALSE',
@locallogin = null,
@rmtuser = 'Admin',
@rmtpassword = null
GO
Теперь вы можете запросить свою базу данных Access как связанный сервер:
select * from TestLinkServer...MyTable