Link Excel su SQLExpress

venerdì 22 agosto 2008 - 14.26

massimo1962 Profilo | Newbie

Salve,
avrei bisogno di un aiuto per usare dati provenienti da una tabella excel collegata con SQL Database . Come posso collegarla ?
Grazie

alx_81 Profilo | Guru

>Salve,
Ciao!

>avrei bisogno di un aiuto per usare dati provenienti da una tabella
>excel collegata con SQL Database . Come posso collegarla ?
Devi caricare i dati da excel in SQL Server? E' quello che ti serve?

>Grazie
Di nulla!

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

massimo1962 Profilo | Newbie

Ciao ,Diciamo di si passo da Access ad SQLServer , mentre in access potevo tenere tabelle collegate di excel forse in SQL Server non posso o ...., debbo per forza importarle nel DB ? Se si mi puoi aiutare costruendo un automatismo ?
Grazie

alx_81 Profilo | Guru

>Ciao ,Diciamo di si passo da Access ad SQLServer , mentre in
>access potevo tenere tabelle collegate di excel forse in SQL
>Server non posso o ...., debbo per forza importarle nel DB ?
>Se si mi puoi aiutare costruendo un automatismo ?
Puoi seguire queste guidelines:

How to import data from Excel to SQL Server
http://support.microsoft.com/kb/321686

Anche se non tutte sono disponibili per Espress.. Tipo i SSIS.. Comunque le altre puoi utilizzarle.

Leggi anche qui:

How to use Excel with SQL Server linked servers and distributed queries
http://support.microsoft.com/kb/306397

>Grazie
di nulla!

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

massimo1962 Profilo | Newbie

Cia ,
sono riuscito a creare un link con SQLServer per i file excel , ora se mi puoi aiutare con un esempio in codice per utilizzare i dati nel mio progetto. VB.net.
Grazie

alx_81 Profilo | Guru

>Cia ,
Ciao

>sono riuscito a creare un link con SQLServer per i file excel
>, ora se mi puoi aiutare con un esempio in codice per utilizzare
>i dati nel mio progetto. VB.net.
Cosa intendi per utilizzare i dati in un progetto in vb.net?
Coi metodi che ti ho indicato tu puoi importare i dati in sql server e poi usare ADO.Net per connetterti ad essi..
è questo che ti serve? Quanto conosci ADO.Net?

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

massimo1962 Profilo | Newbie

Se devo essere sincero non molto , mi basterebbe un esempio per partire , se puoi aiutarmi te ne sarei molto grato.
Grazie

alx_81 Profilo | Guru

>Se devo essere sincero non molto , mi basterebbe un esempio per
>partire , se puoi aiutarmi te ne sarei molto grato.
Cosa hai usato per prendere i dati da excel? OPENROWSET?

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

massimo1962 Profilo | Newbie

Caio non so se ho capito bene ma nel mio test ho solo creato un link che si chiama XLTEST_SP all SQLServer con questa procedura . Il mio file xls si chiama EAN. Però ora non so continuare.
Grazie

DECLARE @RC int
DECLARE @server nvarchar(128)
DECLARE @srvproduct nvarchar(128)
DECLARE @provider nvarchar(128)
DECLARE @datasrc nvarchar(4000)
DECLARE @location nvarchar(4000)
DECLARE @provstr nvarchar(4000)
DECLARE @catalog nvarchar(128)
-- Set parameter values
SET @server = 'XLTEST_SP'
SET @srvproduct = 'Excel'
SET @provider = 'Microsoft.Jet.OLEDB.4.0'
SET @datasrc = 'C:\Documents and Settings\massimo\Documenti\EAN.xls'
SET @provstr = 'Excel 8.0'
EXEC @RC = [master].[dbo].[sp_addlinkedserver] @server, @srvproduct, @provider,
@datasrc, @location, @provstr, @catalog

alx_81 Profilo | Guru

>Caio non so se ho capito bene ma nel mio test ho solo creato
>un link che si chiama XLTEST_SP all SQLServer con questa procedura
>. Il mio file xls si chiama EAN. Però ora non so continuare.
basta utilizzare uno dei metodi che ti ho passato nel primo link, ad esempio:

select * from XLTEST_SP...[nomefoglio] select * from openquery(XLTEST_SP, 'SELECT * FROM [nomefoglio$A1:A1]') SELECT * FROM openrowset('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:spreadsheet.xlsx;HDR=No','Select * from [nomefoglio$]')

>Grazie
di nulla!

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

massimo1962 Profilo | Newbie

Grazie,
ho provato con tutti gli esempi ma mi da sempre lo stesso errore :
"Impossibile creare un'istanza del Provoder OleDB "Microsoft.Jet........." Per il server collegato "XLTEST_SP"
GRazie

alx_81 Profilo | Guru

>Grazie,
>ho provato con tutti gli esempi ma mi da sempre lo stesso errore
>:
>"Impossibile creare un'istanza del Provoder OleDB "Microsoft.Jet........."
>Per il server collegato "XLTEST_SP"
devi abilitare la OLE Automation. Puoi usare il Surface Area Configuration for features e spuntare il flag di abilitazione, oppure lanciare la sp_configure:

sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'Ole Automation Procedures', 1; GO RECONFIGURE; GO

poi devi riavviare il servizio di sql server.

>GRazie
di nulla!

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

massimo1962 Profilo | Newbie

Ciao , scusa ma mi da un errore quando tento di far eseguire la sp , lo copiata ed incollata direttamente

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO

Msg 102, Level 15, State 1, Line 3
Sintassi non corretta in prossimità di 'show advanced options'.

alx_81 Profilo | Guru

>Ciao , scusa ma mi da un errore quando tento di far eseguire
>la sp , lo copiata ed incollata direttamente
Hai lanciato solo quello o prima c'era altro?
guarda, io l'ho appena provata e funziona..
prova cmq a prenderla da qui:

http://msdn.microsoft.com/it-it/library/ms191188(SQL.90).aspx
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

massimo1962 Profilo | Newbie

OK , mi sono sconnesso e riconnesso e ora mi ha eseguito la sp con questo messaggio , positivo.
L'impostazione 1 dell'opzione di configurazione 'show advanced options' è stata sostituita con 1. Per eseguire l'installazione, utilizzare RECONFIGURE.
L'impostazione 1 dell'opzione di configurazione 'Ole Automation Procedures' è stata sostituita con 1. Per eseguire l'installazione, utilizzare RECONFIGURE.

però se lancio
select * from XLTEST_SP...[Foglio1]
ora mi messaggia ancora errore
Msg 7302, Level 16, State 1, Line 1
Impossibile creare un'istanza del provider OLE DB "Microsoft.Jet.OLEDB.4.0" per il server collegato "XLTEST_SP".

Ti ringrazio in anticipo per la pazienza


alx_81 Profilo | Guru

>Ti ringrazio in anticipo per la pazienza
Prova ad usare il surface area configuration for features, lo trovi nel menu avvio..
e controlla che la OLE Automation sia attiva. Se sì, ricordati di riavviare il servizio di SQL Server!
>
>
>

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

massimo1962 Profilo | Newbie

Ciao , è gia tutto configurato corretto mi sembra (vedi allegato).
Ma l'errore persiste.
Grazie

alx_81 Profilo | Guru

>Ciao , è gia tutto configurato corretto mi sembra (vedi allegato).
>Ma l'errore persiste.
La configurazione è corretta. Ho riprovato ancora ma funziona perfettamente. Il server l'hai riavviato vero? Te lo chiedo perchè mi sembra l'ultimo ostacolo..
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

massimo1962 Profilo | Newbie

Si certo meglio chiedere più volte , ma purtroppo lo già riavviato . Non so che fare.
Grazie cmq

alx_81 Profilo | Guru

>Si certo meglio chiedere più volte , ma purtroppo lo già riavviato
>. Non so che fare.
Hai la possibilità di provare su un altro pc? perchè non ti saprei dire altro..
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

massimo1962 Profilo | Newbie

Ultima domanda, nella macchina è installato il pacchetto Office con Excel 2003 il SET (SET @provstr = 'Excel 8.0') è corretto ?
Proverò su un'altro PC.
Grazie

alx_81 Profilo | Guru

>Ultima domanda, nella macchina è installato il pacchetto Office
>con Excel 2003 il SET (SET @provstr = 'Excel 8.0') è corretto?
Io ho usato 8.0 e gira. Però nulal ti vieta di provare con 10.0 e 11.0

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

massimo1962 Profilo | Newbie

Ciao.. ho risolto , ho reinstallato sql ed ora mi funziona , puoi darmi ultimo aiuto sulla stringa di connessione per un linkServer.
Grazie

alx_81 Profilo | Guru

>Ciao.. ho risolto , ho reinstallato sql ed ora mi funziona ,
benissimo.. ultimamente ci sono post risolti con reinstallazioni
sarà l'estate

>puoi darmi ultimo aiuto sulla stringa di connessione per un linkServer.
certo.. cosa ti serve?

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

massimo1962 Profilo | Newbie

Questa è la stringa che uso per collegarmi al normale SQL Database che si chiama Protocolli , dal PC PC001 etc...
ODBC;DRIVER=SQL Server;UID=Massimo.Rosini;Trusted_Connection=Yes;DATABASE=Protocolli;WSID=PC001;SERVER=PHITALIA\SQLEXPRESS
come mi collego , per importare i dati dal file Excel linkato con tanta fatica e grazie al tuo aiuto ?
Grazie

alx_81 Profilo | Guru

>Questa è la stringa che uso per collegarmi al normale SQL Database
>che si chiama Protocolli , dal PC PC001 etc...
>ODBC;DRIVER=SQL Server;UID=Massimo.Rosini;Trusted_Connection=Yes;DATABASE=Protocolli;WSID=PC001;SERVER=PHITALIA\SQLEXPRESS
>come mi collego , per importare i dati dal file Excel linkato
>con tanta fatica e grazie al tuo aiuto ?
ti rispondo con un sito :
http://www.connectionstrings.com/?carrier=excel2007
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
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