SQL для доступа к связанному серверу - PullRequest
2 голосов
/ 03 мая 2011

Я пытаюсь добавить связанный сервер в базу данных Access. Я использую следующий код SQL для этого.

exec sp_addlinkedserver 
@server = 'Test',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = '\\srv\public$\CM Database\Data\sysConfig_dat.mdb'
go
EXEC sp_addlinkedsrvlogin Test, FALSE, Null, Admin, Null

но когда я запускаю это ...

select * from Test...tblProduct

я получаю эту ошибку ...

поставщик OLE DB «Microsoft.Jet.OLEDB.4.0» не может быть используется для распределенных запросов, потому что провайдер настроен на запуск в однопоточный квартирный режим. какие я делаю не так?

Я использую SQL Server Management Studio 2008 в 32-разрядной системе.

Ответы [ 2 ]

6 голосов
/ 06 мая 2011

Я понял это ...

Сервер под управлением SQL Server является 64-битным компьютером. Типичные драйверы компонентов подключения к данным не работали с этим компьютером (т. Е. Загрузка, которая устанавливает Microsoft.Jet.OleDB.4.0 в качестве поставщика). Мне пришлось скачать компоненты для Access 2010, который имеет 64-битную опцию.

Скачать можно здесь

Это устанавливает Microsoft.ACE.OLEDB.12.0 в качестве поставщика, и я могу использовать команду SQL, упомянутую BradBenning в его посте.

4 голосов
/ 04 мая 2011

Попробуйте использовать поставщик Microsoft ACE OLEDB:

EXEC sp_addlinkedserver
   @server = 'Test'
  ,@provider = 'Microsoft.ACE.OLEDB.12.0'
  ,@datasrc = '\\srv\public$\CM Database\Data\sysConfig_dat.mdb'
  ,@srvproduct='Access'
GO 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...