Sql Server 2000 openrowset проблема - PullRequest
       3

Sql Server 2000 openrowset проблема

1 голос
/ 13 октября 2010

Я пытаюсь выполнить запрос и электронную таблицу Excel на сетевом ресурсе, используя функцию openrowset, но безуспешно.Я получаю следующую ошибку:

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;DATABASE=\\server\Xdrive:\Spreadsheet.xls',
    'Select * from [Sheet1$]')

Сервер: Msg 7399, уровень 16, состояние 1, строка 1
Поставщик OLE DB «Microsoft.Jet.OLEDB.4.0» сообщил об ошибке.Поставщик не предоставил никакой информации об ошибке.
Трассировка ошибки OLE DB [Поставщик OLE / DB 'Microsoft.Jet.OLEDB.4.0' IDBInitialize :: Initialize вернул 0x80004005: Поставщик не дал никакой информации об ошибке.].

Я искал сайт и пробовал другой синтаксис, но безуспешно.Я прочитал, что учетная запись может не иметь доступа к сетевому ресурсу.Под каким аккаунтом запускается этот процесс?

Ответы [ 2 ]

0 голосов

Я бы использовал общий сетевой ресурс, но не подключенные диски, так как я всегда думал, что они создают сеансы для каждого пользователя.

Это не приведет к ошибке доступа, но вы, вероятно, должны указать, что первая строка листа не будет пропущена при чтении заголовков:

  • SELECT * FROM OPENROWSET ('Microsoft.Jet.OLEDB.4.0 ',
    ' Excel 8.0; DATABASE = \ server \ Xdrive: \ Spreadsheet.xls ; HDR = NO ',
    ' Выбрать * из [Sheet1 $] ') ​​
0 голосов
/ 13 октября 2010

0x80004005 очень похоже на отказ в доступе.

В services.msc вы можете посмотреть, под какой учетной записью работает SQL Server. Локальная учетная запись не будет работать за пределами локальной машины, учетная запись домена является лучшим выбором, если вы хотите получить доступ к ресурсам в сети.

Исключением является учетная запись NetworkService (доступно в Windows 2003 и более поздних версиях). Это локальная учетная запись, которая может получить доступ к сети, в этом случае она действует как учетная запись компьютера (DomainName\MachineName$). Тем не менее, я бы порекомендовал отдельный домен.

...