Problema con il provider Microsof.ACE.OLEDB.12.0

martedì 11 novembre 2008 - 13.21

wally74 Profilo | Newbie

Buongiorno a tutti,
Ho un problema con la connessione indicata. Una volta analizzata la query sotto Sql Management Studio, compare il messaggio di errore: Il Provider OLE DB='Provider=Microsoft.ACE.OLEDB.12.0' non è stato registrato. Domanda forse banale, per voi, come si registra?

P.S.: Ho la versione Express, e stò lavorando con Vista x86.

Grazie a tutti per la collaborazione
Più conosci, più ti rendi conto di non conoscere e nell'abbondanza della conoscenza non manca la vessazione

lbenaglia Profilo | Guru

>Ho un problema con la connessione indicata. Una volta analizzata
>la query sotto Sql Management Studio, compare il messaggio di
>errore: Il Provider OLE DB='Provider=Microsoft.ACE.OLEDB.12.0'
>non è stato registrato. Domanda forse banale, per voi, come si
>registra?

Ciao Walter,

confesso di non aver mai sentito parlare di questo OLEDB Provider
Prima di tutto, hai provato ad installarlo?
http://www.microsoft.com/downloads/details.aspx?displaylang=it&FamilyID=7554f536-8c28-4598-9b72-ef94e038c891

>Grazie a tutti per la collaborazione
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

wally74 Profilo | Newbie

Il provider l'ho installato dopo aver fatto una ricerca via Internet, direttamente dal sito Microsoft. E' il provider utilizzato da Access 2007.

Forse qualche dettaglio in più è utile. Allora devo importare in una tabella Sql Server i dati contenuti in una tabella Excel 2007, ecco perché ho dovuto installare il provider in oggetto.

Ho provato pure a salvare il file in formato Excel 2003, ed utilizzare il provider Microsoft.JET.OLEDB, ma niente. Anche per questo il provider non viene rilevato.

lbenaglia Profilo | Guru

>Il provider l'ho installato dopo aver fatto una ricerca via Internet,
>direttamente dal sito Microsoft.
Allora dovrebbe essere anche registrato.
Immagino che tu l'abbia installato sul server che ospita sia il foglio Excel che SQL Server, giusto?

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

wally74 Profilo | Newbie

In realtà, è proprio quello che chiedevo. Come faccio a registrare il provider dopo averlo installato.
Più conosci, più ti rendi conto di non conoscere e nell'abbondanza della conoscenza non manca la vessazione

lbenaglia Profilo | Guru

>In realtà, è proprio quello che chiedevo. Come faccio a registrare
>il provider dopo averlo installato.
Il programma di setup provvede pure alla registrazione del provider.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

wally74 Profilo | Newbie

Intanto grazie per le risposte, nonché per l'interessamento.
Tuttavia il problema persiste. Ho provato a disinstallare e reinstallare il file del provider (AccessDatabaseEngine.exe), ma nienete, l'errore persiste: "Il Provider OLE DB='Provider=Microsoft.ACE.OLEDB.12.0' non è stato registrato".
Più conosci, più ti rendi conto di non conoscere e nell'abbondanza della conoscenza non manca la vessazione

lbenaglia Profilo | Guru

>Ho provato a disinstallare e reinstallare
>il file del provider
Dove?
Sulla macchina che ospita sia SQL Server che il foglio Excel?

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

wally74 Profilo | Newbie

Allora, il foglio Excel risiede sul server, mentre SQL Server risiede in locale. Il provider l'ho installato in locale, dove utilizzo SQL Server.

Più conosci, più ti rendi conto di non conoscere e nell'abbondanza della conoscenza non manca la vessazione

lbenaglia Profilo | Guru

>Allora, il foglio Excel risiede sul server, mentre SQL Server
>risiede in locale. Il provider l'ho installato in locale, dove
>utilizzo SQL Server.
Fai una prova copiando il foglio Excel sulla macchina che ospita SQL Server.
Per curiosità, che query esegui sul foglio Excel?
Hai definito un linked server o cosa?

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

wally74 Profilo | Newbie

Ho provato anche a copiare il file in locale ma nada. Mi sono perso, ma non rinuncio.
La stringa di connessione per il file in locale è questa:

SELECT * INTO TblFOO FROM
OPENROWSET('Provider=Microsoft.ACE.OLEDB.12.0' , 'Data Source=C:\Users\Fezza Gianni\Documents\Stat_OPC.xlsx', 'Extended Properties=Excel 12.0 Xml;HDR=YES')

Per il file sul server la stessa cambiando, ovviamente il percorso e la lettera di unità.
Più conosci, più ti rendi conto di non conoscere e nell'abbondanza della conoscenza non manca la vessazione

lbenaglia Profilo | Guru

>SELECT * INTO TblFOO FROM
>OPENROWSET('Provider=Microsoft.ACE.OLEDB.12.0' , 'Data Source=C:\Users\Fezza
>Gianni\Documents\Stat_OPC.xlsx', 'Extended Properties=Excel 12.0
>Xml;HDR=YES')
Ma sei sicuro che la sintassi della OPENROWSET sia corretta?
Non mi risulta che occorra specificare "Provider=" e "Data Source=".
Prova in questo modo:

SELECT Q.* FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0' , 'C:\Users\Fezza Gianni\Documents\Stat_OPC.xlsx;Extended Properties=Excel 12.0;HDR=YES', 'SELECT * FROM [nome del tuo worksheet$]' ) AS Q;

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

wally74 Profilo | Newbie

Dopo aver adottato la tua soluzione, mi viene notificato il seguente errore: Impossibile creare un'istanza del provider OLE DB "Microsoft.ACE.OLEDB.12.0" per il server collegato "(null)".

Potrebbe essere che sono andati in conflitto i provider JET e ACE? Dico questo perché ho provato anche da codice c#, con gli oggetti OLEDB, e li il problema è il seguente: "Couldn't find installable ISAM."

Pardon, ma per me queste sono le prime sperimentazioni.

lbenaglia Profilo | Guru

>Pardon, ma per me queste sono le prime sperimentazioni.
Anche per me con questo maledetto oledb provider

Leggo che alcuni hanno risolto con una sintassi simile a questa:

SELECT * FROM OPENROWSET( 'Microsoft.ACE.OLEDB.12.0' , 'Excel 12.0 Xml;Database=C:\Users\Lorenzo\Documents\Students.xlsx;' , 'SELECT * FROM [Sheet1$]' );

A me non funziona, dando un errore di Access denied anche se copio il file in un path in cui abbia accesso l'account con il quale eseguo il servizio MSSQLServer, esattamente come questa gente:
http://www.developersdex.com/sql/message.asp?p=581&ID=<24da366e-3217-47ab-b56b-e63b230d57f3@e25g2000prg.googlegroups.com>

Mi spiace, ma non so esserti utile su questo problema.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

wally74 Profilo | Newbie

Ho risolto da codice, in parte. Vedasi il ThreadID=26658 "PROBLEMA CON INSERT DA CODICE"
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5