Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

Shrnutí

Microsoft SQL Server podporuje připojení k jiným zdrojům dat OLE DB na trvalém nebo ad hoc základě. Trvalé připojení je označováno jako propojený server. připojení ad hoc, které je provedeno v zájmu jednoho dotazu, se nazývá distribuovaný dotaz. Sešity aplikace Microsoft Excel jsou jedním typem zdroje dat OLE DB, který lze tímto způsobem zadávat prostřednictvím serveru SQL Server. Tento článek popisuje syntaxi, která je nezbytná ke konfiguraci zdroje dat aplikace Excel jako propojeného serveru, a také syntaxi nutnou k použití distribuovaného dotazu, který se dotazuje na zdroj dat aplikace Excel.

Další informace

Dotaz na zdroj dat aplikace Excel na propojeném serveru

Ke konfiguraci zdroje dat aplikace Excel jako propojeného serveru SQL Server můžete použít SQL Server Management Studio nebo Enterprise Manager, systémovou uloženou proceduru, SQL-DMO (distribuované objekty správy) nebo SMO (SQL Server Management Objects). (Společnost SMO je k dispozici pouze pro Microsoft SQL Server 2005.) Ve všech těchto případech je třeba vždy nastavit následující čtyři vlastnosti:

  • Název , který chcete použít pro propojený server.

  • Zprostředkovatel OLE DB, který má být použit pro připojení.

  • Zdroj dat nebo úplná cesta a název souboru sešitu aplikace Excel.

  • Řetězec zprostředkovatele, který identifikuje cíl jako sešit aplikace Excel. Ve výchozím nastavení očekává zprostředkovatel Jet databázi aplikace Access.

Systémová uložená procedura sp_addlinkedserver také očekává vlastnost @srvproduct , což může být jakákoli řetězcová hodnota. Poznámka: Používáte-li SQL Server 2005, je třeba zadat hodnotu, která není pro vlastnost názvu produktu v aplikaci SQL Server Management Studio nebo pro vlastnost @srvproduct v uložené proceduře zdroje dat aplikace Excel prázdná.

Použití serveru SQL Server Management Studio nebo Enterprise Manager ke konfiguraci zdroje dat aplikace Excel jako propojeného serveru

SQL Server Management Studio (SQL Server 2005)
  1. V aplikaci SQL Server Management Studio rozbalte objekty serveru v Průzkumníku objektů.

  2. Pravým tlačítkem myši klepněte na položku propojené serverya potom klepněte na příkaz nový propojený server.

  3. V levém podokně vyberte stránku Obecné a proveďte následující kroky:

    1. Do prvního textového pole zadejte libovolný název propojeného serveru.

    2. Vyberte možnost jiného zdroje dat .

    3. V seznamu zprostředkovatelů klikněte na položku Microsoft Jet 4,0 OLE DB Provider.

    4. Do pole název produktu zadejte text Excel pro název zdroje dat OLE DB.

    5. Do pole zdroj dat zadejte úplnou cestu a název souboru aplikace Excel.

    6. Do pole řetězce zprostředkovatele zadejte Excel 8,0 pro sešit excel 2002, excel 2000 nebo Excel 97.

    7. Klepnutím na tlačítko OK vytvoříte nový propojený server.

Poznámka: V aplikaci SQL Server Management Studio nelze rozbalit nový název propojeného serveru a zobrazit tak seznam objektů, které server obsahuje.

Správce rozlehlé sítě (SQL Server 2000)
  1. V nástroji Enterprise Manager rozbalte klepnutím složku Security .

  2. Pravým tlačítkem myši klepněte na položku propojené serverya potom klepněte na příkaz nový propojený server.

  3. Na kartě Obecné postupujte následujícím způsobem:

    1. Do prvního textového pole zadejte libovolný název propojeného serveru.

    2. V poli Typ serveru klepněte na možnost jiný zdroj dat.

    3. V seznamu názvů zprostředkovatelů klepněte na položku Microsoft Jet 4,0 OLE DB Provider.

    4. Do pole zdroj dat zadejte úplnou cestu a název souboru aplikace Excel.

    5. Do pole řetězce zprostředkovatele zadejte Excel 8,0 pro sešit excel 2002, excel 2000 nebo Excel 97.

    6. Klepnutím na tlačítko OK vytvoříte nový propojený server.

  4. Klepnutím rozbalíte nový název propojeného serveru a rozbalíte tak seznam objektů, které obsahuje.

  5. Pod novým názvem propojeného serveru klepněte na tlačítko tabulky. Všimněte si, že se listy a pojmenované oblasti zobrazují v pravém podokně.

Použití uložené procedury ke konfiguraci zdroje dat aplikace Excel jako propojeného serveru

Můžete také použít systémovou uloženou proceduru sp_addlinkedserver ke konfiguraci zdroje dat aplikace Excel jako propojeného serveru:

DECLARE @RC intDECLARE @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 valuesSET @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, tato uložená procedura vyžaduje další, libovolnou řetězcovou hodnotu pro @srvproduct argument, která se v konfiguraci Enterprise Manager a serveru SQL Server Management Studio zobrazí jako "název produktu". Argumenty @location a @catalog nejsou použity.

Konfigurace zdroje dat aplikace Excel jako propojeného serveru pomocí příkazu SQL-DMO

Objekty služby SQL Distributed Management Object lze použít ke konfiguraci zdroje dat aplikace Excel jako propojeného serveru programově z jazyka Microsoft Visual Basic nebo jiného programovacího jazyka. Je nutné zadat stejné čtyři argumenty, které jsou vyžadovány v konfiguraci nástroje Enterprise Manager a serveru 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.CloseEnd Sub

Použití služby SMO ke konfiguraci zdroje dat aplikace Excel jako propojeného serveru

V aplikaci SQL Server 2005 můžete pomocí objektů SMO (SQL Server Management Objects) nakonfigurovat zdroj dat aplikace Excel jako propojený server programově. To lze provést pomocí jazyka Microsoft Visual Basic .NET nebo jiného programovacího jazyka. Je nutné zadat argumenty, které jsou vyžadovány v konfiguraci serveru SQL Server Management Studio. Objektový model SMO rozšiřuje a nahrazuje objektový model SQL-DMO (Distributed Management Objects). Protože je SMO kompatibilní se serverem SQL Server verze 7,0, SQL Server 2000 a SQL Server 2005, můžete také použít SMO pro konfiguraci serveru SQL Server 2000.

Imports Microsoft.SqlServer.Management.SmoImports Microsoft.SqlServer.Management.CommonPublic 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 SubEnd Class

Dotaz na zdroj dat aplikace Excel na propojeném serveru

Jakmile nakonfigurujete zdroj dat aplikace Excel jako propojený server, můžete snadno zadat dotaz na jeho data z nástroje Analýza dotazů nebo z jiné klientské aplikace. Chcete-li například načíst řádky dat uložené v listu List1 souboru aplikace Excel, použije následující kód propojený server nakonfigurovaný pomocí serveru SQL-DMO:

SELECT * FROM XLTEST_DMO...Sheet1$

Pomocí funkce OPENQUERY můžete také zadávat dotazy na server propojených aplikací Excel způsobem "Passthrough", a to následovně:

SELECT * FROM OPENQUERY(XLTEST_DMO, 'SELECT * FROM [Sheet1$]')

První argument, který OPENQUERY očekává, je název propojeného serveru. Pro názvy listů jsou vyžadovány oddělovače, jak je ukázáno výše. Seznam všech tabulek, které jsou k dispozici na propojeném serveru aplikace Excel, můžete také získat pomocí následujícího dotazu:

EXECUTE SP_TABLES_EX 'XLTEST_DMO'

Dotazování na zdroj dat aplikace Excel pomocí distribuovaných dotazů

Můžete použít distribuované dotazy serveru SQL Server a funkci OPENDATASOURCE nebo OPENROWSET k dotazování zřídka používaných zdrojů dat aplikace Excel ad hoc. Poznámka: Používáte-li SQL Server 2005, ujistěte se, že jste povolili možnost ad hoc – distribuované dotazy pomocí konfigurace povrchových oblastí serveru SQL Server, 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$

Všimněte si, že OPENROWSET používá neobvyklá syntaxi pro druhý argument ("řetězec Provider"):

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',    'Excel 8.0;Database=c:\book1.xls', Sheet1$)

Syntaxe, kterou může vývojář rozhraní ADO (ActiveX Data Objects) použít pro druhý argument ("Provider String") s OPENROWSET:

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',    'Data Source=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$)

Tato syntaxe vyvolává z zprostředkovatele Jet následující chybu:

Nelze najít instalovatelnou metodu ISAM.

Poznámka: K této chybě také dojde, pokud zadáte zdrojdat místo datového zdroje. 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

Vzhledem k tomu, že propojené servery a distribuované dotazy serveru SQL Server používají zprostředkovatele OLE DB, jsou zde použity obecné pokyny a upozornění týkající se použití objektů ADO s aplikací Excel. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

257819 jak používat objekty ADO s daty aplikace Excel z aplikace Visual Basic nebo VBADalší informace o objektech pro správu serveru SQL Server naleznete na následujícím webu služby MSDN (Microsoft Developer Network):

http://msdn2.microsoft.com/en-us/library/ms162169(ide).aspxDalší informace o povolení možnosti pro distribuované dotazy ad hoc naleznete na následujícím webu služby MSDN:

http://msdn2.microsoft.com/en-us/library/ms189978(ide).aspx

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

Děkujeme vám za zpětnou vazbu.

×