L'utilizzo di Excel con SQL Server collegati di server e distribuiti query

Traduzione articoli Traduzione articoli
Identificativo articolo: 306397 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Microsoft SQL Server supporta connessioni a altre origini di dati OLE DB in un oggetto permanente o una base ad hoc. La connessione permanente Ŕ detto a un server collegato; una connessione ad hoc in cui viene effettuata per motivi di una singola query equivale a una query distribuita.

Cartelle di lavoro di Microsoft Excel sono un tipo di origine dati OLE DB che Ŕ possibile eseguire query tramite SQL Server in questo modo. In questo articolo vengono descritti la sintassi che Ŕ necessario configurare un'origine dati Excel come server collegato, nonchÚ la sintassi che Ŕ necessaria utilizzare una query distribuita che query un'origine dati Excel.

Informazioni

Query di un'origine dati di Excel in un server collegato

╚ possibile utilizzare SQL Server Management Studio o Enterprise Manager, un sistema di stored procedure, SQL-DMO (Distributed Management Objects) o SMO (SQL Server Management Objects) per configurare un'origine dati di Excel come server collegato SQL Server. (SMO sono solo disponibili per Microsoft SQL Server 2005). In tutti questi casi, Ŕ sempre necessario impostare le seguenti quattro proprietÓ:
  • Il nome che si desidera utilizzare per il server collegato.
  • Il di OLE DB provider che deve essere utilizzato per la connessione.
  • L'origine dati o completo percorso e il nome file per la cartella di lavoro.
  • La stringa del provider , che identifica la destinazione come cartella di lavoro di Excel. Per impostazione predefinita, il Provider Jet prevede un database di Access.
La procedura sistema sp_addlinkedserver prevede inoltre il @ srvproduct proprietÓ, che pu˛ essere qualsiasi valore stringa.

Nota Se si utilizza SQL Server 2005, Ŕ necessario specificare un valore non vuoto per la proprietÓ di nome prodotto in SQL Server Management Studio o per il @ srvproduct proprietÓ nella stored procedure per un'origine dati di Excel.

Utilizzo di SQL Server Management Studio o Enterprise Manager per configurare un'origine dati Excel come server collegato

SQL Server Management Studio (SQL Server 2005)
  1. In SQL Server Management Studio, espandere Oggetti Server in Esplora oggetti .
  2. Fare clic con il pulsante destro del mouse Server collegati e quindi fare clic su nuovo server collegato .
  3. Nel riquadro di sinistra, selezionare la pagina Generale e quindi attenersi alla seguente procedura:
    1. Nella casella testo prima, digitare un nome per il server collegato.
    2. Selezionare l'opzione altra origine dati .
    3. Nell'elenco Provider , fare clic su Microsoft Jet 4.0 OLE DB Provider .
    4. Nella casella nome prodotto digitare Excel per il nome dell'origine dati OLE DB.
    5. Nella casella origine dati , digitare il nome di file e percorso completo del file di Excel.
    6. Nella casella stringa provider , digitare Excel 8.0 per una cartella di lavoro Excel 2002, Excel 2000 o Excel 97.
    7. Fare clic su OK per creare il nuovo server collegato.
Nota In SQL Server Management Studio, Ŕ Impossibile espandere il nome del nuovo server collegato per visualizzare l'elenco di oggetti che contiene il server.
Enterprise Manager (SQL Server 2000)
  1. In Enterprise Manager, fare clic per espandere la cartella protezione .
  2. Fare clic con il pulsante destro del mouse Server collegati e quindi fare clic su nuovo server collegato .
  3. Nella scheda Generale , attenersi alla seguente procedura:
    1. Nella casella testo prima, digitare un nome per il server collegato.
    2. Nella casella tipo di server fare clic su altra origine dati .
    3. Nell'elenco nome del provider , fare clic su Microsoft Jet 4.0 OLE DB Provider .
    4. Nella casella origine dati , digitare il percorso e il nome completo di Excel il file.
    5. Nella casella stringa provider , digitare Excel 8.0 per una cartella di lavoro Excel 2002, Excel 2000 o Excel 97.
    6. Fare clic su OK per creare il nuovo server collegato.
  4. Fare clic per espandere il nome del nuovo server collegato per espandere l'elenco di oggetti in essa contenuti.
  5. Nel nome del nuovo server collegato, fare clic su tabelle . Si noti che i fogli di lavoro e intervalli denominati vengono visualizzati nel riquadro di destra.

Utilizzando una stored procedure per configurare un'origine dati Excel come un server collegato

╚ inoltre possibile utilizzare di procedura sp_addlinkedserver di sistema per configurare un'origine dati Excel come un server collegato:
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:\book1.xls'
SET @provstr = 'Excel 8.0'
EXEC @RC = [master].[dbo].[sp_addlinkedserver] @server, @srvproduct, @provider, 
@datasrc, @location, @provstr, @catalog
				
come indicato in precedenza, questa stored procedure richiede un valore di stringa arbitrario, ulteriori per il @ srvproduct argomento, che viene visualizzato come "Nome prodotto" nella configurazione di Enterprise Manager e SQL Server Management Studio. Il percorso di @ e @ catalogo gli argomenti non vengono utilizzati.

Utilizzo di SQL-DMO per configurare un'origine dati Excel come server collegato

Per configurare un'origine dati Excel come un server collegato a livello di programmazione in Microsoft Visual Basic o un altro linguaggio di programmazione, Ŕ possibile utilizzare SQL Distributed Management Objects. ╚ necessario specificare gli stessi quattro argomenti necessari nella configurazione di Enterprise Manager e SQL Server Management Studio.
Private Sub Command1_Click()
    Dim s As SQLDMO.SQLServer
    Dim ls As SQLDMO.LinkedServer
    Set s = New SQLDMO.SQLServer
    s.Connect "(local)", "sa", "password"
    Set ls = New SQLDMO.LinkedServer
    With ls
        .Name = "XLTEST_DMO"
        .ProviderName = "Microsoft.Jet.OLEDB.4.0"
        .DataSource = "c:\book1.xls"
        .ProviderString = "Excel 8.0"
    End With
    s.LinkedServers.Add ls
    s.Close
End Sub
				

Utilizzo di SMO per configurare un'origine dati Excel come server collegato

In SQL Server 2005, Ŕ possibile utilizzare SQL Server Management Objects (SMO) per configurare un'origine dati Excel come server collegato a livello di programmazione. Per effettuare questa operazione, Ŕ possibile utilizzare Microsoft Visual Basic .NET o un altro linguaggio di programmazione. ╚ necessario specificare gli argomenti necessari nella configurazione di SQL Server Management Studio. Il modello di oggetti SMO estende e sostituisce il modello a oggetti Distributed Management Objects (SQL-DMO). Because SMO is compatible with SQL Server version 7.0, SQL Server 2000, and SQL Server 2005, you can also use SMO for configuration of SQL Server 2000.
Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Common

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim s As Server
        Dim conn As ServerConnection
        Dim ls As LinkedServer

        conn = New ServerConnection("ServerName\InstanceName", "YourUesrName", "YourPassword")
        s = New Server(conn)
        Try
            ls = New LinkedServer(s, "XLTEST_DMO")
            With ls
                .ProviderName = "Microsoft.Jet.OLEDB.4.0"
                .ProductName = "Excel"
                .DataSource = "c:\book1.xls"
                .ProviderString = "Excel 8.0"
            End With
            ls.Create()
            MessageBox.Show("New linked Server has been created.")
        Catch ex As SmoException
            MessageBox.Show(ex.Message)
        Finally
            ls = Nothing
            If s.ConnectionContext.IsOpen = True Then
                s.ConnectionContext.Disconnect()
            End If
        End Try

    End Sub
End Class

Query di un'origine dati di Excel in un server collegato

Dopo aver configurato un'origine dati Excel come server collegato, Ŕ possibile eseguire facilmente una query relativi dati da Query Analyzer o un'altra applicazione client. Ad esempio, per recuperare le righe di dati che vengono memorizzati nel Foglio1 del file di Excel, il codice riportato di seguito utilizza il server collegato configurato utilizzando SQL-DMO:
SELECT * FROM XLTEST_DMO...Sheet1$
				
Ŕ anche possibile utilizzare OPENQUERY per effettuare query come indicato di seguito sul server di collegato di Excel in modo "passthrough",:
SELECT * FROM OPENQUERY(XLTEST_DMO, 'SELECT * FROM [Sheet1$]')
				
il primo argomento che prevede OPENQUERY Ŕ il nome del server collegato. I delimitatori sono necessari per i nomi di foglio di lavoro, come illustrato in precedenza.

╚ inoltre possibile ottenere un elenco di tutte le tabelle sono disponibili nel server collegato Excel utilizzando la seguente query:
EXECUTE SP_TABLES_EX 'XLTEST_DMO'
				

Query di un'origine dati Excel utilizzando query distribuite

╚ possibile utilizzare le query distribuite di SQL Server e la funzione OPENDATASOURCE o OPENROWSET a origini dati Excel di query che accede raramente in base ad hoc.

Nota Se si sono utilizza SQL Server 2005, assicurarsi di aver attivato l'opzione di Query distribuite Ad Hoc utilizzando SQL Configurazione superficie di server, come nell'esempio riportato di seguito:
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
   'Data Source=c:\book1.xls;Extended Properties=Excel 8.0')...Sheet1$
				
nota che OPENROWSET utilizza una sintassi non comune per il secondo argomento ("provider String"):
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'Excel 8.0;Database=c:\book1.xls', Sheet1$)
				
la sintassi che pu˛ prevedere uno sviluppatore di ActiveX Data Objects (ADO) da utilizzare per il secondo argomento ("provider String") tramite OPENROWSET:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'Data Source=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$)
				
questa sintassi genera il seguente errore dal provider di Jet:
Impossibile trovare ISAM installabile.
Nota Questo errore si verifica anche se si immette DataSource anzichÚ dall'Origine dati . Ad esempio, l'argomento riportato di seguito non Ŕ corretto:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'DataSource=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$) 
				

Riferimenti

PoichÚ SQL Server collegati e distribuiti query utilizza il provider OLE DB, le linee guida generali e avvisi sull'utilizzo di ADO con Excel applicano qui. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
257819L'utilizzo di ADO con dati di Excel da Visual Basic o VBA
Per ulteriori informazioni su SQL Server Management Objects, visitare il seguente sito Web MSDN (informazioni in lingua inglese):
http://msdn2.microsoft.com/en-us/library/ms162169(ide).aspx
Per ulteriori informazioni su come attivare l'opzione Query distribuite Ad Hoc , visitare il seguente sito Web MSDN:
http://msdn2.microsoft.com/en-us/library/ms189978(ide).aspx

ProprietÓ

Identificativo articolo: 306397 - Ultima modifica: venerdý 2 novembre 2007 - Revisione: 6.4
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 7.0 Standard Edition
Chiavi:á
kbmt kbdatabase kbhowto kbjet KB306397 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 306397
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com