Teď jste offline a čekáte, až se znova připojí internet.

Použití aplikace Excel, serveru SQL, propojené servery a distribuovaných dotazy

DŮLEŽITÉ: Tento článek je přeložen pomocí softwaru na strojový překlad Microsoft. Nepřesný či chybný překlad lze opravit prostřednictvím technologie Community Translation Framework (CTF). Microsoft nabízí strojově přeložené, komunitou dodatečně upravované články, a články přeložené lidmi s cílem zajistit přístup ke všem článkům v naší znalostní bázi ve více jazycích. Strojově přeložené a dodatečně upravované články mohou obsahovat chyby ve slovníku, syntaxi a gramatice. Společnost Microsoft není odpovědná za jakékoliv nepřesnosti, chyby nebo škody způsobené nesprávným překladem obsahu nebo jeho použitím našimi zákazníky. Více o CTF naleznete na http://support.microsoft.com/gp/machine-translation-corrections/cs.

Projděte si také anglickou verzi článku: 306397
Souhrn
Microsoft SQL Server podporuje připojení k jiným zdrojům dat OLE DB na trvalé nebo ad hoc základě. Trvalé připojení, je označován jako propojený server; ad hoc připojení, která je v zájmu jediného dotazu se nazývá distribuovaný dotaz.

Sešity aplikace Microsoft Excel jsou jednoho typu zdroje dat OLE DB, který tímto způsobem můžete dotaz pomocí serveru SQL Server. Tento článek popisuje syntaxi, která je třeba nastavit zdroj dat aplikace Excel jako propojený server, jakož i syntaxi, která je nutné použít distribuovaný dotaz, že dotazy 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ému uložená procedura, SQL-DMO (Distributed Management Objects) nebo SMO (SQL Server Management Objects), chcete-li nakonfigurovat zdroj dat aplikace Excel jako propojený server SQL Server. (SMO jsou k dispozici pouze pro Microsoft SQL Server 2005.) Ve všech těchto případech musí vždy nastavit následující čtyři vlastnosti:
  • Název , který chcete použít pro propojený server.
  • Technologie OLE DB zprostředkovatele , který se použije pro připojení.
  • Zdroj dat nebo úplnou cestu a název souboru sešitu aplikace Excel.
  • Zprostředkovatel řetězec, který identifikuje cíl jako sešit aplikace Excel. Podle výchozího nastavení zprostředkovatele Jet předpokládá, že databáze aplikace Access.
Systémovou uloženou proceduru sp_addlinkedserver také předpokládá, že vlastnost @srvproduct , která může být libovolný řetězec.

Poznámka: Pokud používáte SQL Server 2005, zadejte hodnotu, která není prázdná pro vlastnost název produktu v SQL Server Management Studio nebo pro vlastnost @srvproduct v uložené procedury pro zdroj dat aplikace Excel.

Chcete-li nakonfigurovat zdroj dat aplikace Excel jako propojený server pomocí SQL Server Management Studio nebo Enterprise Manager

SQL Server Management Studio (SQL Server 2005)
  1. V SQL Server Management Studio rozbalte Objekty serveru v Průzkumník objektů.
  2. Propojené serveryklepněte pravým tlačítkem myši a potom klepněte na tlačítko nový propojený server.
  3. V levém podokně vyberte stránku Obecné a potom postupujte takto:
    1. Do prvního textového pole zadejte libovolný název propojeného serveru.
    2. Vyberte <b00> </b00>jiného zdroje dat možnost.
    3. V seznamu poskytovatel klepněte na položku Microsoft Jet 4.0 OLE DB Provider.
    4. Zadejte do pole název výrobkuAplikace Excel Název zdroje dat OLE DB.
    5. V poli zdroj dat zadejte úplnou cestu a název souboru aplikace Excel.
    6. Zadejte do pole řetězec zprostředkovateleAplikace Excel 8.0 pro sešit aplikace Excel 2002, Excel 2000 a Excel 97.
    7. Klepněte na tlačítko OK , chcete-li vytvořit nový propojený server.
Poznámka: Chcete-li zobrazit seznam objektů, které server obsahuje nový název propojeného serveru nelze rozbalit v SQL Server Management Studio.
Enterprise Manager (SQL Server 2000)
  1. V nástroji Enterprise Manager rozbalte složku zabezpečení klepněte na tlačítko.
  2. Propojené serveryklepněte pravým tlačítkem myši a potom klepněte na tlačítko nový propojený server.
  3. Na kartě Obecné postupujte takto:
    1. Do prvního textového pole zadejte libovolný název propojeného serveru.
    2. V seznamu Typ serveru klepněte na tlačítko zdroj dat.
    3. V seznamu název zprostředkovatele klepněte na položku Microsoft Jet 4.0 OLE DB Provider.
    4. V poli zdroj dat zadejte úplnou cestu a název souboru aplikace Excel.
    5. Zadejte do pole řetězec zprostředkovateleAplikace Excel 8.0 pro sešit aplikace Excel 2002, Excel 2000 a Excel 97.
    6. Klepněte na tlačítko OK , chcete-li vytvořit nový propojený server.
  4. Klepnutím rozbalte položku rozbalte thelist objekty, které obsahuje nový název propojeného serveru.
  5. S novým názvem propojený server klepněte na tlačítko tabulky. Všimněte si, že listů a pojmenovaných oblastí se zobrazí v rightpane.

Chcete-li nakonfigurovat zdroj dat aplikace Excel jako propojený server pomocí uložené procedury

Systémovou uloženou proceduru sp_addlinkedserver slouží také jako propojený server nastavit zdroj dat aplikace Excel:
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ší libovolný řetězec hodnotu argumentu @srvproduct , který se zobrazí jako "Název produktu" v konfiguraci programu Enterprise Manager a SQL Server Management Studio. Argumenty @location a @catalog nejsou používány.

Chcete-li nakonfigurovat zdroj dat aplikace Excel jako propojený server pomocí SQL-DMO

Objekty SQL Distributed Management můžete nakonfigurovat zdroj dat aplikace Excel jako propojený server programově z Microsoft Visual Basic nebo jiného programovacího jazyka. Je třeba zadat stejné čtyři argumenty, které jsou vyžadovány v konfiguraci programu 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.CloseEnd Sub				

Chcete-li nakonfigurovat zdroj dat aplikace Excel jako propojený server pomocí SMO

V SQL Server 2005 můžete programově nakonfigurovat zdroj dat aplikace Excel jako propojený server SQL Server Management objekty (SMO). Chcete-li to provést, můžete použít Microsoft Visual Basic .NET nebo jiný programovací jazyk. Je třeba zadat argumenty, které jsou vyžadovány v konfiguraci SQL Server Management Studio. Objektový model SMO rozšiřuje a nahrazuje model objektu objekty Distributed Management (SQL-DMO). Vzhledem k tomu, ž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.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ý server

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

Můžete také získat seznam všech tabulek, které jsou k dispozici v aplikaci Excel propojený server pomocí následující dotaz:
EXECUTE SP_TABLES_EX 'XLTEST_DMO'				

Dotaz na zdroj dat aplikace Excel pomocí distribuovaných dotazů

Ke zdrojům dat aplikace Excel dotaz s nízkou četností přístupu na ad hoc základě můžete použít SQL Server distribuované dotazy a funkce OPENDATASOURCE nebo OPENROWSET.

Poznámka: Pokud používáte SQL Server 2005, ujistěte se, zda jste povolili možnost Ad Hoc Distributed dotazy pomocí SQL Server Surface Area Configuration, 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 pro druhý argument (dále jen "Zprostředkovatel řetězec") používá OPENROWSET neobvyklé syntaxe:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',    'Excel 8.0;Database=c:\book1.xls', Sheet1$)				
Syntaxe pro druhý argument (dále jen "Zprostředkovatel řetězec") s OPENROWSET může očekávat i vývojáři ActiveX Data Objects (ADO):
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',    'Data Source=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$)				
Tato syntaxe vyvolává chybová zpráva ze zprostředkovatele Jet:
Nelze najít instalovatelnou metodu ISAM.
Poznámka: K této chybě také dochází, pokud zadáte Zdroj dat mí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žít zde. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
257819 Způsob použití objektu ADO s daty aplikace Excel z aplikace Visual Basic nebo kódu jazyka VBA
Další informace o správě objektů serveru SQL Server naleznete následujícím webu Microsoft Developer Network (MSDN):Další informace o tom, jak povolit možnost Ad Hoc Distributed dotazy naleznete na následujícím webu MSDN:

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 306397 - Poslední kontrola: 03/15/2015 03:33:00 - Revize: 9.0

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

  • kbsqlsetup kbdatabase kbhowto kbjet kbmt KB306397 KbMtcs
Váš názor
>