REZIME

Microsoft SQL Server podržava veze sa drugim OLE DB izvorima podataka na trajnoj ili ad hoc osnovi. Trajna veza je poznata kao povezani server, a ad hoc veza koja je napravljena za jedan upit poznata je kao distribuirani upit. Microsoft Excel radne sveske jesu jedan tip OLE DB izvora podataka za koji možete izdati upit preko sistema SQL Server na ovaj način. Ovaj članak opisuje sintaksu koja je potrebna da bi se Excel izvor podataka konfigurisao kao povezani server, kao i sintaksu potrebnu da bi se koristio distribuirani upit koji izdaje upit za Excel izvor podataka.

DODATNE INFORMACIJE

Izdavanje upita za Excel izvor podataka na povezanom serveru

Možete koristiti SQL Server Management Studio ili Enterprise Manager, sistemsku uskladištenu proceduru, SQL-DMO (Distributed Management Objects) ili SMO (SQL Server Management Objects) da biste konfigurisali Excel izvor podataka kao povezani server sistema SQL Server. (SMO su dostupni samo za Microsoft SQL Server 2005.) U svim ovim slučajevima uvek morate podesiti sledeća četiri svojstva:

  • Ime koje želite da koristite za povezani server.

  • Dobavljača OLE baze podataka koji će se koristiti za vezu.

  • Izvor podataka ili kompletnu putanju i ime datoteke za Excel radnu svesku.

  • Nisku dobavljača koja identifikuje cilj kao Excel radnu svesku. Po podrazumevanoj vrednosti, Jet dobavljač očekuje Access bazu podataka.

Sistemska uskladištena procedura sp_addlinkedserver takođe očekuje svojstvo @srvproduct koje može biti bilo koja vrednost niske. Napomena Ako koristite SQL Server 2005, morate navesti vrednost koja nije prazna za svojstvo Ime proizvoda u programu SQL Server Management Studio ili za svojstvo @srvproduct u uskladištenoj proceduri za Excel izvor podataka.

Korišćenje programa SQL Server Management Studio ili Enterprise Manager za konfigurisanje Excel izvora podataka kao povezanog servera

SQL Server Management Studio (SQL Server 2005)
  1. U programu SQL Server Management Studio, u alatki Istraživač objekata razvijte stavku Objekti servera.

  2. Kliknite desnim tasterom miša na stavku Povezani serveri, a zatim izaberite stavku Novi povezani server.

  3. U levom oknu izaberite stranicu Opšte postavke, a zatim sledite ove korake:

    1. U prvom okviru za tekst otkucajte bilo koje ime za povezani server.

    2. Izaberite opciju Drugi izvor podataka.

    3. Na listi Dobavljač izaberite stavku Microsoft Jet 4.0 OLE DB dobavljač.

    4. U polju Ime proizvoda otkucajte Excel za ime OLE DB izvora podataka.

    5. U polju Izvor podataka otkucajte celu putanju i ime datoteke Excel datoteke.

    6. U polju Niska dobavljača otkucajte Excel 8.0 za Excel 2002, Excel 2000 ili Excel 97 radnu svesku.

    7. Kliknite na dugme U redu da biste kreirali novi povezani server.

Napomena U programu SQL Server Management Studio ne možete da razvijete ime novog povezanog servera da biste prikazali listu objekata koje server sadrži.

Enterprise Manager (SQL Server 2000)
  1. U programu Enterprise Manager razvijte fasciklu Bezbednost.

  2. Kliknite desnim tasterom miša na stavku Povezani serveri, a zatim izaberite stavku Novi povezani server.

  3. Na kartici Opšti podaci sledite ove korake:

    1. U prvom okviru za tekst otkucajte bilo koje ime za povezani server.

    2. U polju Tip servera izaberite stavku Drugi izvor podataka.

    3. Na listi Ime dobavljača izaberite stavku Microsoft Jet 4.0 OLE DB dobavljač.

    4. U polju Izvor podataka otkucajte celu putanju i ime datoteke Excel datoteke.

    5. U polju Niska dobavljača otkucajte Excel 8.0 za Excel 2002, Excel 2000 ili Excel 97 radnu svesku.

    6. Kliknite na dugme U redu da biste kreirali novi povezani server.

  4. Razvijte ime novog povezanog servera da biste razvili listu objekata koje on sadrži.

  5. U okviru imena novog povezanog servera izaberite stavku Tabele. Obratite pažnju na to da se radni listovi i imenovani opsezi prikazuju u desnom oknu.

Korišćenje uskladištene procedure za konfigurisanje Excel izvora podataka kao povezanog servera

Takođe možete koristiti sistemsku uskladištenu proceduru sp_addlinkedserver da biste konfigurisali Excel izvor podataka kao povezani server:

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)-- Podešavanje vrednosti parametaraSET @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

Kao što je naznačeno, ova uskladištena procedura zahteva dodatnu, proizvoljnu vrednost niske za argument @srvproduct koji se prikazuje kao „Ime proizvoda“ u konfiguraciji programa Enterprise Manager i SQL Server Management Studio. Argumenti @location i @catalog se ne koriste.

Korišćenje SQL-DMO objekata za konfigurisanje Excel izvora podataka kao povezanog servera

Možete koristiti SQL Distributed Management Objects da biste programski konfigurisali Excel izvor podataka kao povezani server iz jezika Microsoft Visual Basic ili nekog drugog programskog jezika. Morate obezbediti ista četiri argumenta koji su potrebni u konfiguraciji programa Enterprise Manager i 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

Korišćenje SMO objekata za konfigurisanje Excel izvora podataka kao povezanog servera

U sistemu SQL Server 2005 možete koristiti SQL Server Management Objects (SMO) da biste programski konfigurisali Excel izvor podataka kao povezani server: Da biste to uradili, možete koristiti Microsoft Visual Basic .NET ili neki drugi programski jezik. Morate obezbediti argumente koji su potrebni u konfiguraciji programa SQL Server Management Studio. SMO objektni model proširuje i zamenjuje Distributed Management Objects (SQL-DMO) objektni model. Pošto je SMO kompatibilan sa sistemima SQL Server verzije 7.0, SQL Server 2000 i SQL Server 2005, takođe možete koristiti SMO za konfiguraciju sistema 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

Izdavanje upita za Excel izvor podataka na povezanom serveru

Kada konfigurišete Excel izvor podataka kao povezani server, možete jednostavno izdati upit za podatke iz programa „Analizator upita“ ili neke druge klijentske aplikacije. Na primer, da biste dobili redove podataka koji su uskladišteni na 1. listu Excel datoteke, sledeći kôd koristi povezani server koji ste konfigurisali koristeći SQL-DMO:

SELECT * FROM XLTEST_DMO...Sheet1$

Takođe možete koristiti OPENQUERY da biste izdali upit za Excel povezani server na „prolazni“ način kao u sledećem primeru:

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

Prvi argument koji OPENQUERY očekuje jeste ime povezanog servera. Za imena radnih listova potrebni su znakovi za razgraničavanje, kao što je prikazano iznad. Takođe možete dobiti listu svih tabela koje su dostupne na Excel povezanom serveru koristeći sledeći upit:

EXECUTE SP_TABLES_EX 'XLTEST_DMO'

Izdavanje upita za Excel izvor podataka pomoću distribuiranih upita

Možete koristiti SQL Server distribuirane upite i funkcije OPENDATASOURCE ili OPENROWSET da biste izdavali upite za Excel izvore podataka kojima ne pristupate često na ad hoc osnovi.Napomena Ako koristite SQL Server 2005, uverite se da ste omogućili opciju Ad Hoc distribuirani upiti koristeći konfiguraciju površine u sistemu SQL Server, kao u sledećem primeru:

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

Obratite pažnju na to da OPENROWSET koristi neuobičajenu sintaksu za drugi argument („Niska dobavljača“):

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

Sintaksa koju će ActiveX Data Objects (ADO) programer očekivano koristiti za drugi argument („Niska dobavljača“) sa funkcijom OPENROWSET:

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

Ova sintaksa dovodi do sledeće greške Jet dobavljača:

Nije bilo moguće pronaći ISAM koji može da se instalira.

Napomena Do ove greške dolazi i ako unesete tekst DataSource umesto teksta Data Source. Na primer, sledeći argument nije tačan:

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

REFERENCE

Pošto SQL Server povezani serveri i distribuirani upiti koriste OLE DB dobavljača, primenjuju se opšta uputstva i upozorenja o upotrebi ADO objekata sa programom Excel. Za više informacija kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:

257819 Upotreba ADO objekata sa Excel podacima iz jezika Visual Basic ili VBA (Ova veza može da vodi do sadržaja koji je delimično ili u potpunosti nepreveden.)Više informacija o funkciji SQL Server Management Objects potražite na sledećoj Microsoft Developer Network (MSDN) Web lokaciji:

http://msdn2.microsoft.com/en-us/library/ms162169(ide).aspxViše informacija o omogućavanju opcije Ad Hoc distribuirani upiti potražite na sledećoj MSDN Web lokaciji:

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

Da li vam je potrebna dodatna pomoć?

Želite još opcija?

Istražite pogodnosti pretplate, pregledajte kurseve za obuku, saznajte kako da obezbedite uređaj i još mnogo toga.

Zajednice vam pomažu da postavljate pitanja i odgovarate na pitanja, dajete povratne informacije i čujete mišljenje od stručnjaka sa bogatim znanjem.