Použití aplikace Excel se serverem SQL Server propojených serverů a distribuovány dotazy

Překlady článku Překlady článku
ID článku: 306397 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Microsoft SQL Server podporuje připojení k jiné dat OLE DB zdroje trvalé nebo ad hoc podle. Trvalé připojení je znám. jako propojený server; připojení ad hoc, že je v zájmu jediného dotaz se nazývá distribuovaná dotazu.

Jsou sešity aplikace Microsoft Excel jeden typ zdroje dat OLE DB, který můžete dotaz prostřednictvím serveru SQL v tomto způsobem. Tento článek popisuje syntaxi, která je nutné nakonfigurovat Zdroje dat aplikace Excel jako propojený server, jakož i syntaxi, která je nezbytná použití distribuovaných dotazu, který vyhledá zdroj dat aplikace Excel.

Další informace

Dotaz na zdroj dat aplikace Excel na propojený server

Můžete použít SQL Server Management Studio nebo Enterprise Manager, systémovou uloženou proceduru SQL-DMO (Distributed Management Objects), nebo zdroj SMO (SQL Server Management objekty) konfigurace dat z aplikace Excel jako Propojený server SQL Server. (SMO jsou k dispozici pouze pro Microsoft SQL Server 2005.) Ve všech těchto případech je nutné vždy nastavit Následující čtyři vlastnosti:
  • Na název Chcete použít pro propojeného serveru.
  • Zprostředkovatele OLE DB Zprostředkovatel která má být použita pro připojení.
  • Na zdroj dat nebo úplnou cestu a název souboru sešitu aplikace Excel.
  • Na řetězec zprostředkovatele, která identifikuje cíl jako sešit aplikace Excel. Ve výchozím nastavení, Zprostředkovatele Jet očekává, že databáze aplikace Access.
Systémovou uloženou proceduru sp_addlinkedserver také očekává @ srvproduct Vlastnost, která může být libovolná hodnota řetězce.

Poznámka: Používáte-li SQL Server 2005, je nutné zadat hodnotu, která není prázdná pro Název produktu v produktu SQL Server Management Studio nebo @ srvproduct Vlastnost uložené procedury pro zdroje dat aplikace Excel.

Pomocí konfigurace zdroj dat aplikace Excel jako propojený server SQL Server Management Studio nebo Enterprise Manager

SQL Server Management Studio (SQL Server 2005)
  1. V systému SQL Server Management Studio rozbalte Objekty serveru v Průzkumník objektů.
  2. Klepněte pravým tlačítkem myši Propojené serverya klepněte na tlačítko Nový propojený server.
  3. V levém podokně vyberte Obecné stránky a pak postupujte takto:
    1. První textové pole zadejte libovolný název propojeného serveru.
    2. Vyberte Jiný zdroj dat. možnost.
    3. V Zprostředkovatel Klepněte na položku Databázový stroj Microsoft Jet 4.0 OLE DB Provider.
    4. V Název produktu Typ pole Aplikace Excel název zdroje dat OLE DB.
    5. V Zdroj dat pole, zadejte úplnou cestu a název souboru aplikace Excel.
    6. V Řetězec zprostředkovatele Typ pole Aplikace Excel 8.0 pro sešit aplikace Excel 2002, Excel 2000 nebo Excel 97.
    7. Klepněte na tlačítko OK vytvořit nový propojený server.
Poznámka: V systému SQL Server Management Studio nelze rozšířit zobrazení seznamu objektů, které server obsahuje nový název propojeného serveru.
Enterprise Manager (SQL Server 2000)
  1. V nástroji Enterprise Manager rozbalte klepnutím Zabezpečení složka.
  2. Klepněte pravým tlačítkem myši Propojené serverya klepněte na tlačítko Nový propojený server.
  3. V Obecné karta, postupujte takto:
    1. Do prvního textového pole napište libovolný název propojený Server.
    2. V Typ serveru Klepněte na tlačítko Jiný zdroj dat..
    3. V Název zprostředkovatele Klepněte na položku Databázový stroj Microsoft Jet 4.0 OLE DB Provider.
    4. V Zdroj dat Zadejte úplnou cestu a název aplikace Excel soubor.
    5. V Řetězec zprostředkovatele Typ pole Aplikace Excel 8.0 pro sešit aplikace Excel 2002, Excel 2000 nebo Excel 97.
    6. Klepněte na tlačítko OK vytvořit nový propojený server.
  4. Rozbalte nový název propojeného serveru rozbalte kliknutím Chcete-li zobrazit seznam objektů, které obsahuje.
  5. S novým názvem propojený server klepněte na tlačítko Tabulky. Všimněte si, že listů a pojmenovaných oblastí, zobrazí se v pravém podokno.

Konfigurace zdroje dat aplikace Excel jako propojený server pomocí uložené procedury

Můžete také použít systémovou uloženou proceduru sp_addlinkedserver Konfigurovat zdroj dat aplikace Excel jako propojený server:
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
				
Jak bylo uvedeno výše, tento uložený postup vyžaduje další, libovolného řetězcové hodnoty pro @ srvproduct argument, který se zobrazí jako "Název produktu" v rámci rozlehlé sítě Konfigurace správce a SQL Server Management Studio. Na umístění @ a @ katalogu argumenty nejsou používány.

Pomocí konfigurace zdroj dat aplikace Excel jako propojený server SQL-DMO

SQL Distributed Management Objects lze konfigurovat Zdroje dat aplikace Excel jako propojený server programově z Microsoft Visual Základní nebo jiného programovacího jazyka. Je třeba zadat stejné čtyři argumenty které jsou požadovány v konfiguraci Enterprise Manager a 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
				

Konfigurace zdroje dat aplikace Excel jako propojený server pomocí SMO

SQL Server 2005 můžete nástroj SQL Server Management objekty (SMO) programově nastavit zdroj dat aplikace Excel jako propojený server. Chcete-li to provést, použijete jazyka Microsoft Visual Basic.NET nebo jiného programovacího jazyka. Je třeba zadat argumenty, které jsou požadovány v konfiguraci serveru SQL Server Management Studio. SMO objektový model rozšiřuje a nahrazuje objektový model Distributed Management Objects (SQL-DMO). Protože SMO je kompatibilní se serverem SQL Server verze 7.0, SQL Server 2000 a SQL Server 2005, můžete také SMO pro konfiguraci serveru 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

Dotaz na zdroj dat aplikace Excel na propojený server

Po konfiguraci zdroje dat aplikace Excel jako propojený server, který dotaz lze snadno data z Query Analyzer nebo jiné klientské aplikace. Například načíst řádky dat, které jsou uloženy v listu List1 vaší Soubor aplikace Excel, následující kód používá propojený server, který jste nakonfigurovali ve pomocí SQL-DMO:
SELECT * FROM XLTEST_DMO...Sheet1$
				
Můžete také použít OTEVŘÍTDOTAZ dotaz propojený server aplikace Excel v "průchod" způsobem, takto:
SELECT * FROM OPENQUERY(XLTEST_DMO, 'SELECT * FROM [Sheet1$]')
				
První argument, který očekává OTEVŘÍTDOTAZ je název propojeného serveru. Oddělovače jsou vyžadovány názvy sešitu, jak je uvedeno výše.

Je možné také získáte seznam všech tabulek, které jsou k dispozici v aplikaci Excel propojeny Server pomocí následující dotaz:
EXECUTE SP_TABLES_EX 'XLTEST_DMO'
				

Dotaz na zdroj dat aplikace Excel pomocí distribuovaných dotazy

Pomocí dotazů serveru SQL Server, distribuovaných a OPENDATASOURCE nebo funkce OPENROWSET dotaz zřídka přístup na zdroje dat aplikace Excel ad hoc základ.

Poznámka: Používáte-li SQL Server 2005, ujistěte se, zda jste povolili Dotazy Ad Hoc distribuované možnost pomocí konfigurace SQL Server povrchu plochy, jako v následujícím příkladu:
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
   'Data Source=c:\book1.xls;Extended Properties=Excel 8.0')...Sheet1$
				
Pro druhý ("poskytovatel používá běžné syntaxe OPENROWSET Argument řetězec"):
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'Excel 8.0;Database=c:\book1.xls', Sheet1$)
				
Syntaxi, která může očekávat vývojář ActiveX Data Objects (ADO) použijte jako druhý argument s OPENROWSET ("poskytovatel řetězec"):
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'Data Source=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$)
				
Tato syntaxe vyvolává ze zprostředkovatele Jet následující chybová zpráva:
Nelze najít instalovatelnou metodu ISAM.
Poznámka:K této chybě také dochází, pokud zadáte Zdroj datmísto Zdroj dat. Například následující argument je nesprávný:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'DataSource=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$) 
				

Odkazy

Protože SQL Server propojené servery a distribuovaných dotazy pomocí zprostředkovatele OLE DB, obecné pokyny a upozornění týkající se použití objektů ADO v aplikaci Excel použijte zde. Další informace získáte klepnutím na následující číslo článku databáze Microsoft Knowledge Base:
257819Použití objektů ADO s daty aplikace Excel z aplikace Visual Basic nebo VBA
Další informace o správě objektů serveru SQL Server naleznete na webu Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms162169 (ide) .aspx
Další informace o povolení Dotazy Ad Hoc distribuované možnost naleznete na následujícím webu MSDN:
http://msdn2.microsoft.com/en-us/library/ms189978 (ide) .aspx

Vlastnosti

ID článku: 306397 - Poslední aktualizace: 18. května 2011 - Revize: 8.0
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbsqlsetup kbdatabase kbhowto kbjet kbmt KB306397 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:306397

Dejte nám zpětnou vazbu

 

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