"Impossibile trovare ISAM installabile."

mercoledì 26 agosto 2009 - 15.30

Anonimo Profilo | Senior Member

Cosa vuol dire?
Vi spiego il problema. Ho dei dati su alcuni fogli Excel, e li vorrei esportare su delle tabelle di un db in sql server 2005 express edition. Siccome quest'edizione di sql server non contiene il "data import/export wizard" allora ho cercato un po' in giro su internet per sapere se esiste un modo alternativo di importare/esportare dati. Ho trovato questo modo:

>Importare dati da Excel a SQL Server 2005 Express
>lunedì, 5 maggio 2008 09.55 by Marco Bellinaso
>
>Quando l'altro giorno mi è stato chiesto di importare i dati di un foglio Excel in una tabella di SQL Server 2005, mi son detto "no problem, lancio il >Data Import/Export wizard, e via". Purtroppo tale tool non è presente nella versione Express, dal momento che mancano anche i SQL Server >Integration Services (SSIS) and SQL Server Agent sui quali quel wizard si basa. Mi sembrava uno spreco installare la versione Standard solo per >questo, quindi ho cercato qualche soluzione alternativa. E' possibile ad esempio scrivere una macro VBA direttamente in Excel per ciclare sulle righe e >colonne, e inserire i dati in SQL Server tramite il vecchio Recordset di ADO...ma anche questo mi sembrava troppo lavoro per un compito così >semplice! La soluzione che ho adottato -- e che ha funzionato alla perfezione -- è stata di usare la funzione OPENROWSET, in questo modo:
>
>SELECT * INTO Negozi FROM
>OPENROWSET('Microsoft.Jet.OLEDB.4.0',
>'Excel 8.0;Database=c:\temp\DatiNegozi.xls', [Sheet1$])
>
>Questo codice prende tutti i dati presenti nel file XLS specificato (nel foglio Sheet1), e li copia in una nuova tabella chiamata Negozi. La prima riga >del foglio Excel dovrebbe essere di intestazione, ed è quella che il comando utilizzerà per estrarre i nomi dei campi da creare nella nuova tabella. Se >alcuni campi dovessero essere creati con un tipo diverso da quello desiderato (ad esempio float ancihè int, o varchar invece di nvarchar) sarà >ovviamente possibile modificare lo schema della tabella direttamente da Management Studio Express dopo l'importazione.
>
>Il comando però non funzionerà se le "Ad Hoc Distributed Queries" non sono abilitate. Per attivarle, eseguire i seguenti statement:
>
>sp_configure 'show advanced options',1
>reconfigure with override
>go
>sp_configure 'Ad Hoc Distributed Queries',1
>reconfigure with override
>go

Non ho problemi ad attivare le Ad Hoc Queries, invece quando vado ad eseguire questa query:

>SELECT * INTO Clienti FROM
>OPENROWSET('Microsoft.Jet.OLEDB.4.0',
>'Excel 9.0;Database=C:\...\Clienti.xls', [Foglio1$])

...sql server mi riporta questo errore:

>Il provider OLE DB "Microsoft.Jet.OLEDB.4.0" per il server collegato "(null)" ha restituito il messaggio "Impossibile trovare ISAM installabile.".
>Messaggio 7303, livello 16, stato 1, riga 1
>Impossibile inizializzare l'oggetto origine dei dati del provider OLE DB "Microsoft.Jet.OLEDB.4.0" per il server collegato "(null)".

Ho cercato informazioni su questo "ISAM" e si riferivano alla dll msexcl40. Il caso è che questa dll ce l'ho, su registro c'è il valore "win32" che riporta il percorso di questa dll. Sembra tutto a posto, ma in fondo non lo è. Non riesco ad importare su sql server i dati. Dove sbaglio?

Grazie dell'attenzione.
--------------------------------------------------------------------------

Allan Felipe

yag Profilo | Junior Member

scusa se mi intrometto
sei riuscito a risolvere ? ho lo stesso problema
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5