Sto cercando di eseguire la seguente query:SQL Server: Impossibile inizializzare l'oggetto origine dati del provider OLE DB "Microsoft.ACE.OLEDB.12.0" per il server collegato "(null)"
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=C:\Somefile.xlsx',
'SELECT * FROM [Sheet$]')
Ma ottengo questo errore:
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".
ho provato la seguente:
sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
E:
USE [master]
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
GO
Quando vado su 'Server Objects' -> 'Linked Server' -> 'Provider', viene elencato Microsoft.ACE.OLEDB.12.0.
È installato Acess Database Engine x64, tutti i prodotti Office sono a 64 bit e il mio SQL Server è anche a 64 bit.
Se è importante, tutti gli utenti hanno accesso alla cartella Temp nella cartella Utenti.
(Questi sono tutti i suggerimenti che ho trovato nelle risposte simili a questa domanda)
Edit: Utilizzo di SQL Server 2014.
io non sono abbastanza familiarità con questa roba per ricordare i messaggi di errore al largo della parte superiore della mia testa, così, mi dispiace se questo è irrilevante: È perché la cartella di lavoro è aperta quando si esegue vero? –
La cartella di lavoro non è aperta. –
Funziona quando lo si esegue come amministratore di sistema? – Anon