Ako používať Excel s SQL Server spojené servery a distribuované dotazy

Preklady článku Preklady článku
ID článku: 306397 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

SUHRN

Microsoft SQL Server podporuje pripojenia k iných údajov OLE DB zdrojov na trvalé alebo ad hoc základe. Trvalého pripojenia je známe ako prepojený server; ad hoc pripojenie, ktoré je vyrobené z dôvodu jediného dotaz je známy ako distribuovaných dotaz.

Program Microsoft Excel zošity sú jeden typ zdroja údajov OLE DB, ktoré môžete dotaz prostredníctvom servera SQL Server v tejto spôsobom. Tento článok popisuje syntax, že je potrebné nakonfigurovať Zdroj údajov programu Excel ako prepojený servera, ako aj o syntaxe, ktorá je potrebná používanie distribuovaných dotazu, ktoré získava zdroja údajov programu Excel.

DALSIE INFORMACIE

Vytváranie dotazov zdroja údajov programu Excel na serveri prepojené

Môžete použiť SQL Server Management Studio alebo Enterprise Manager, systému ukladajú postup, SQL-DMO (Distributed riadenia objekty), alebo SMO (SQL Server Management objekty) konfigurácia údaje programu Excel zdroja ako Prepojený servera SQL Server. (SMO sú dostupné len pre Microsoft SQL Server 2005.) Vo všetkých týchto prípadoch, musíte vždy nastaviť nasledujúce štyri vlastnosti:
  • V meno že chcete použiť pre prepojené server.
  • OLE DB Poskytovateľ ktoré sa má použiť pre pripojenie.
  • V Zdroj údajov alebo úplnú cestu a názov súboru zošita programu Excel.
  • V poskytovateľ reťazec, ktorý identifikuje cieľový zošit programu Excel. V predvolenom nastavení Jet poskytovateľ očakáva databázy programu Access.
Systém uložené postupom sp_addlinkedserver takisto očakáva, že @ srvproduct Vlastnosť, ktorá môže byť akýkoľvek reťazec hodnoty.

Poznámka: Ak používate SQL Server 2005, musíte zadať hodnotu, ktorá nie je prázdny pre Názov produktu Nehnuteľnosť v SQL Server Management Studio alebo pre @ srvproduct Nehnuteľnosť v uloženej procedúry pre zdroja údajov programu Excel.

Pomocou SQL Server Management Studio alebo Enterprise Manager konfigurácia zdroja údajov programu Excel ako prepojený server

SQL Server Management Studio (SQL Server 2005)
  1. V SQL Server Management Studio, rozbaľte Server objektov v Objekt Explorer.
  2. Kliknite pravým tlačidlom myši Prepojený servery, a potom kliknite na tlačidlo Nový prepojený server.
  3. Na ľavej table, vyberte Všeobecné stránky a potom postupujte nasledovne:
    1. Do prvého bloku textu, zadajte ľubovoľný názov pre prepojené server.
    2. Vyberte Iného zdroja údajov možnosť.
    3. V Poskytovateľ kliknite na, Microsoft Jet 4.0 OLE DB Provider.
    4. V Názov produktu zadajte Excel pre názov zdroja údajov OLE DB.
    5. V Zdroj údajov rámček, zadajte úplnú cestu a názov súboru programu Excel.
    6. V Poskytovateľ reťazec zadajte Program Excel 8.0 pre zošit programu Excel 2002, Excel 2000 alebo programu Excel 97.
    7. Kliknite na položku ok Ak chcete vytvoriť nový prepojený server.
Poznámka: V SQL Server Management Studio, nemôže rozbaliť nový názov prepojeného servera zobrazíte zoznam objektov, ktoré server obsahuje.
Enterprise Manager (SQL Server 2000)
  1. V Enterprise Manager, kliknutím rozbaľte Zabezpečenie priečinok.
  2. Kliknite pravým tlačidlom myši Prepojený servery, a potom kliknite na tlačidlo Nový prepojený server.
  3. Na Všeobecné kartu, postupujte nasledovne:
    1. Do prvého bloku textu, zadajte ľubovoľný názov pre prepojený Server.
    2. V Typ servera kliknite na tlačidlo Iného zdroja údajov.
    3. V Názov poskytovateľa kliknite na, Microsoft Jet 4.0 OLE DB Provider.
    4. V Zdroj údajov zadajte úplnú cestu a názov súboru programu Excel súbor.
    5. V Poskytovateľ reťazec zadajte Program Excel 8.0 pre zošit programu Excel 2002, Excel 2000 alebo programu Excel 97.
    6. Kliknite na položku ok Ak chcete vytvoriť nový prepojený server.
  4. Kliknutím rozbaľte nový názov prepojeného servera rozšíriť zoznam objektov, ktoré obsahuje.
  5. V časti nový názov prepojeného servera, kliknite na Tabuľky. Všimnite si, že pracovných hárkov a pomenované rozsahy, ktoré sa zobrazia v pravej tabla.

Pomocou uloženej procedúry konfigurácia zdroja údajov programu Excel ako prepojený server

Môžete použiť aj systém uložené postupom sp_addlinkedserver Konfigurácia zdroja údajov programu Excel ako prepojený 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
				
Ako je poznamenané vyššie, toto uložené postup vyžaduje dodatočnú, svojvoľné reťazec hodnoty pre @ srvproduct argument, ktorý sa zobrazí ako „názov produktu"v podniku Manager a SQL Server Management Studio konfigurácia. V @ umiestnenie a @ Katalóg argumenty nie sú použité.

Pomocou SQL DMO konfigurácia zdroja údajov programu Excel ako prepojený server

SQL distribuované riadenia objektov môžete použiť na konfiguráciu Zdroj údajov programu Excel ako programovo zo prepojený servera Microsoft Visual Základné alebo inej programovací jazyk. Musíte zadať rovnaké štyri argumenty ktoré sú potrebné v Enterprise Manager a SQL Server Management Studio konfigurácii.
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
				

Pomocou SMO konfigurácia zdroja údajov programu Excel ako prepojený server

V SQL Server 2005, môžete použiť SQL Server Management objekty (SMO) konfigurácia zdroja údajov programu Excel ako prepojený server pomocou programovania. Na tento účel môžete použiť jazyka Microsoft Visual Basic.NET alebo iným programovacím jazykom. Musíte zadať argumenty, ktoré sa požadujú v SQL Server Management Studio konfigurácii. Objektový model SMO rozširuje a nahrádza objektový model distribuované riadenia objektov (SQL-DMO). Pretože SMO je kompatibilný s SQL Server verzie 7.0, SQL Server 2000 a SQL Server 2005, môžete použiť aj SMO pre konfiguráciu 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

Vytváranie dotazov zdroja údajov programu Excel na serveri prepojené

Po nakonfigurovaní zdroja údajov programu Excel ako prepojený server, ktorý vám môžete ľahko dotaz jeho údaje z analyzátor dotazu alebo iného klientskej aplikácie. Napríklad chcete načítať riadky údajov, ktoré sú uložené v Hárok1 z vášho Súbor programu Excel, nasledujúci kód používa prepojený servera, ktorý ste nakonfigurovali v pomocou SQL-DMO:
SELECT * FROM XLTEST_DMO...Sheet1$
				
Môžete použiť aj OPENQUERY dotaz prepojený server Excel v "passthrough" spôsobom:
SELECT * FROM OPENQUERY(XLTEST_DMO, 'SELECT * FROM [Sheet1$]')
				
Prvý argument, že očakáva, že OPENQUERY je názov prepojeného servera. Oddeľovače sú potrebné pre názvov pracovných hárkov, ako je uvedené vyššie.

môžeš takisto získať zoznam všetkých tabuliek, ktoré sú k dispozícii v programe Excel prepojené server pomocou nasledujúcich dotazu:
EXECUTE SP_TABLES_EX 'XLTEST_DMO'
				

Vytváranie dotazov zdroja údajov programu Excel pomocou distribuovaných dotazy

Môžete použiť SQL Server distribuované dotazy a OPENDATASOURCE alebo OPENROWSET funkcia dotaz zriedka prístupné zdroje údajov programu Excel na ad hoc základe.

Poznámka Ak používate SQL Server 2005, uistite sa, že ste zapli Ad Hoc distribuovaných dotazy možnosť pomocou SQL Server Surface Area Configuration, ako v nasledujúcom príklade:
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
   'Data Source=c:\book1.xls;Extended Properties=Excel 8.0')...Sheet1$
				
Všimnite si, že OPENROWSET používa nezvyčajné syntax pre druhý ("poskytovateľ Argument v reťazci"):
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'Excel 8.0;Database=c:\book1.xls', Sheet1$)
				
Syntax, že ActiveX Data Objects (ADO) vývojár môže očakávať použitie na druhý argument ("poskytovateľ reťazec") s OPENROWSET:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'Data Source=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$)
				
Túto syntax vyvoláva nasledujúca chyba od Jet poskytovateľa:
Nepodarilo sa nájsť inštalovateľná Knižnica ISAM.
PoznámkaTáto chyba sa vyskytne, ak zadáte DataSourcenamiesto Zdroj údajov. Napríklad, nasledovné argument je nesprávny:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'DataSource=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$) 
				

ODKAZY

Pretože SQL Server spojené servery a distribuované dotazy Použite OLE DB Provider, všeobecné pokyny a upozornenia o používaní ADO s Excel uplatňuje tu. Ďalšie informácie získate po kliknutí na nasledovné číslo článku databázy Microsoft Knowledge Base:
257819Ako používať ADO s údajmi programu Excel z programu Visual Basic alebo VBA
Ďalšie informácie o SQL Server Management objektov nájdete na webovej lokalite Microsoft Developer Network (MSDN):
http://msdn2.Microsoft.com/en-us/library/ms162169 (ide) .aspx
Ďalšie informácie o povolení Ad Hoc distribuovaných dotazy možnosť, navštívte nasledovnej webovej lokalite MSDN:
http://msdn2.Microsoft.com/en-us/library/ms189978 (ide) .aspx

Vlastnosti

ID článku: 306397 - Posledná kontrola: 31. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
  • 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
Kľúčové slová: 
kbsqlsetup kbdatabase kbhowto kbjet kbmt KB306397 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:306397

Odošlite odozvu

 

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