2010-10-12 7 views
1

Je tente d'interroger et tableur Excel sur un partage réseau, en utilisant la fonction openrowset sans succès. Je reçois l'erreur suivante:Sql Server 2000 openrowset question

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

Server: Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' reported an error. The provider did not give any information about the error.
OLE DB error trace [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005: The provider did not give any information about the error.].

J'ai cherché le site et ont essayé une syntaxe différente sans succès. J'ai lu que le compte peut ne pas avoir accès au partage réseau. Quel compte ce processus fonctionne-t-il?

+0

Est-ce quelque chose ServerFault voor? – thomaspaulb

Répondre

0

0x80004005 ressemble beaucoup à Accès refusé.

Vous pouvez rechercher dans le service services.msc le compte sous lequel SQL Server s'exécute. Un compte local ne fonctionnera pas en dehors de la machine locale, un compte de domaine est le meilleur choix si vous souhaitez accéder aux ressources sur le réseau. Une exception est le NetworkService account (disponible sur Windows 2003 et versions ultérieures). C'est un compte local qui peut accéder au réseau, il agit en tant que compte machine (DomainName\MachineName$) dans ce cas. Je recommanderais néanmoins un compte de domaine dédié.

+0

Que voulez-vous dire sous "Compte NetworkService (disponible sur Windows 2003 et supérieur)". Je l'ai sur Windows XP Pro. Il n'est pas correct que "Un compte local ne fonctionnera pas en dehors de la machine locale", –

+0

Compte système local ne sera pas –

+0

@ vgv8: Windows XP et Windows 2003 sont les mêmes dans mon livre. "Service réseau" il n'est pas disponible en tant que compte dans Windows 2000 et ci-dessous. Puisque dans Windows 2000 la plupart des services s'exécutent en tant que "système local", ils ne peuvent pas accéder au réseau du tout. Windows XP/2003 a résolu cela en introduisant un compte local nommé "Service réseau" avec des capacités d'accès réseau de base. – Tomalak

0

J'utiliserais le partage réseau mais pas les lecteurs mappés puisque j'ai toujours pensé créer des sessions pour chaque utilisateur.

Il ne serait pas provoquer une erreur d'accès, mais vous devriez probablement indiquer que la première ligne de la feuille ne soit pas ignorée par les en-têtes de lecture:

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