SQL Server Связанный сервер с Microsoft Access - PullRequest
4 голосов
/ 04 февраля 2010

Я попытался использовать связанные серверы в SQL Server 2008, выполнив следующие действия для доступа к таблице Microsoft Access 2003.

EXEC sp_addlinkedserver access1t, 'OLE DB Provider for Jet', 'Microsoft.Jet.OLEDB.4.0', 'C:\tester.mdb'
EXEC sp_addlinkedsrvlogin access1t, FALSE, Null, Admin, Null
GO
CREATE VIEW TI001APCE1265 AS SELECT * FROM access1t...Table1

Однако я получаю сообщение об ошибке:

OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "access1t" returned message "Unspecified error".
Msg 7303, Level 16, State 1, Procedure TI001APCE1265, Line 1
Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "access1t".

В базе данных доступа нет пароля / имени пользователя, но, глядя на документы, которые я понял, мне пришлось использовать sp_addlinkedsrvlogin, как указано выше. Я тоже пробовал без логина.

Бит Я все еще получаю ту же ошибку - что происходит?!

Спасибо всем

Отладочный вывод

Array ([0] => Array ([0] => 42000) [SQLSTATE] => 42000 [1] => 7303 [код] => 7303 [2] => [Microsoft] [Собственный клиент SQL Server 10.0] [SQL Server] Не удается инициализировать объект источника данных Поставщик OLE DB "Microsoft.Jet.OLEDB.4.0" для связанных сервер "access1265293168". [сообщение] => [Microsoft] [Собственный клиент SQL Server 10.0] [SQL Server] Невозможно инициализировать объект источника данных Поставщик OLE DB "Microsoft.Jet.OLEDB.4.0" для связанных сервер "access1265293168". ) [1] => Массив ([0] => 01000 [SQLSTATE] => 01000 [1] => 7412 [код] => 7412 [2] => [Microsoft] [Собственный клиент SQL Server 10.0] [SQL Server] OLE DB провайдер "Microsoft.Jet.OLEDB.4.0" для связанный сервер "access1265293168" вернуло сообщение "Неуказанная ошибка". [message] => [Microsoft] [SQL Server Собственный клиент 10.0] [SQL Server] OLE DB провайдер "Microsoft.Jet.OLEDB.4.0" для связанный сервер "access1265293168" вернуло сообщение "Неуказанная ошибка". ))

1 Ответ

4 голосов
/ 04 февраля 2010

Вы пробовали с именованными параметрами?:

EXEC sp_addlinkedserver 
   @server = 'access1t', 
   @provider = 'Microsoft.Jet.OLEDB.4.0', 
   @srvproduct = 'OLE DB Provider for Jet',
   @datasrc =  'C:\tester.mdb'
GO

Возможно, вам просто нужно указать имя сервера в одинарных кавычках 'access1t'.

[Имеет ли ваш вошедший в систему пользователь разрешение на доступ к корню диска C:? ]

...