SQL Server ile Excel nasıl sunucuları bağlı ve sorguları Dağıtılmış

Makale çevirileri Makale çevirileri
Makale numarası: 306397 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Microsoft SQL Server üzerinde kalıcı bir diğer OLE DB veri kaynaklarına bağlantılar veya geçici bir temel destekler. Kalıcı bağlantı, bir bağlı sunucu adı verilir; için tek bir sorguda yapılan özel bir bağlantı, bir dağıtık sorgu bilinir.

Microsoft Excel çalışma kitapları bu biçimde SQL Server query OLE DB veri kaynağı türüdür. Bu makalede, bir Excel veri kaynağını bir dağıtık sorgu sorguladığı kullanmak gereken sözdizimi yanı sıra, bir Excel veri kaynağına bağlı bir sunucu yapılandırmak için gerekli olan sözdizimi anlatılmaktadır.

Daha fazla bilgi

Bir Excel veri kaynağına bağlı bir sunucu sorgulaması

SQL Server Management Studio'yu veya Kuruluş Yöneticisi, kullanabileceğiniz bir sistem saklı yordamını, SQL-DMO (Distributed Management Objects) veya <a1>SMO</a1> (SQL Server Management bir Excel veri kaynağını bir SQL Server bağlantılı sunucu olarak yapılandırmak için Objects). (SMO, yalnızca Microsoft SQL Server 2005'te kullanılabilir.) Tüm bu durumlarda, her zaman aşağıdaki dört özellikleri ayarlamanız gerekir:
  • Bağlantılı bir sunucu için kullanmak istediğiniz adı.
  • Bağlantı için kullanılacak OLE DB sağlayıcısı.
  • Veri kaynağı veya Excel çalışma kitabı için tam yolu ve dosya adı.
  • Hedef bir Excel çalışma kitabı olarak tanımlayan Sağlayıcı dizesi. Varsayılan olarak, Jet Sağlayıcısı bir Access veritabanını umuyor.
Sistem saklı yordamını sp_addlinkedserver, ayrıca @ srvproduct umuyor özelliği, herhangi bir dize olabilir.

Not SQL Server 2005 kullanıyorsanız, @ srvproduct veya SQL Server Management Studio'da ürün adı özelliği için boş olmayan bir değer belirtmelisiniz saklı yordamdaki bir Excel veri kaynağı için bir özellik.

SQL Server Management Studio'yu veya Enterprise Manager kullanarak bir Excel veri kaynağını bir bağlantılı sunucu yapılandırın.

SQL Server Management Studio'yu (SQL Server 2005)
  1. SQL Server Management Studio'da Server ObjectsObject Explorer ' ı genişletin.
  2. Bağlantılı sunucuları ' nı sağ tıklatın ve sonra Yeni bir bağlı sunucu.
  3. Sol bölmede, Genel sayfasını seçin ve sonra aşağıdaki adımları izleyin:
    1. Ilk metin kutusuna, bağlantılı bir sunucu için herhangi bir ad yazın.
    2. Diğer veri kaynağı</a0> seçeneğini belirleyin.
    3. Sağlayıcı listesinde, Microsoft Jet 4.0 OLE DB Provider ' ı tıklatın.
    4. Ürün adı</a0> kutusunda, Excel için OLE DB veri kaynağı adını yazın.
    5. Veri kaynağı</a0> kutusunda, Excel dosyanın tam yolunu ve dosya adını yazın.
    6. Sağlayıcı dizesi</a0> kutusunda, bir Excel 2002, Excel 2000 veya Excel 97 çalışma kitabı Excel 8.0 yazın.
    7. Yeni bir bağlı sunucu oluşturmak için Tamam ' ı tıklatın.
Not SQL Server Management Studio'da sunucu içeren bir nesne listesini görüntülemek için yeni bağlantılı bir sunucu adı genişletilemiyor.
Enterprise Manager (SQL Server 2000)
  1. Enterprise Manager'da, Güvenlik klasörü genişletmek için tıklatın.
  2. Bağlantılı sunucuları ' nı sağ tıklatın ve sonra Yeni bir bağlı sunucu.
  3. Genel sekmesinde, aşağıdaki adımları izleyin:
    1. Ilk metin kutusuna, bağlantılı bir sunucu için herhangi bir ad yazın.
    2. Sunucu türü</a0> kutusunda, diğer bir veri kaynağını tıklatın.
    3. Sağlayıcı adı listesinde, Microsoft Jet 4.0 OLE DB Provider ' ı tıklatın.
    4. Veri kaynağı</a0> kutusunda Excel tam yolunu ve dosya adını yazın... dosya.
    5. Sağlayıcı dizesi</a0> kutusunda, bir Excel 2002, Excel 2000 veya Excel 97 çalışma kitabı Excel 8.0 yazın.
    6. Yeni bir bağlı sunucu oluşturmak için Tamam ' ı tıklatın.
  4. Içerdiği nesnelerin listesini genişletmek için yeni bağlantılı bir sunucu adı olarak genişletmek için tıklatın.
  5. Altında yeni bir bağlı sunucu adı da Tablolar ' ı tıklatın. Sağ bölmede, çalışma sayfaları ve adlandırılmış aralıkları görünür dikkat edin.

Saklı yordam kullanarak bir Excel veri kaynağını bir bağlantılı sunucu yapılandırın.

Sistem saklı yordamını sp_addlinkedserver bağlantılı sunucu olarak bir Excel veri kaynağını yapılandırmak için de kullanılabilir:
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
				
yukarıda belirtildiği gibi Bu saklı yordam için @ srvproduct bir ek, rasgele bir dize değeri gerektirir bağımsız "Ürün adı" Enterprise Manager'ı ve SQL Server Management Studio'yu yapılandırmasını görüntülenir. @ Konumu ve @ katalog bağımsız değişkenler kullanılamaz.

Bir Excel veri kaynağına bağlı bir sunucu yapılandırmak için SQL-DMO kullanma

SQL Distributed Management Objects, Microsoft Visual Basic'te veya başka bir programlama dili tarafından programsal olarak bir bağlantılı sunucu olarak bir Excel veri kaynağını yapılandırmak için kullanabilirsiniz. Enterprise Manager'ı ve SQL Server Management Studio'yu yapılandırmasında gerekli olan aynı dört bağımsız değişken girmelisiniz.
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
				

Bir Excel veri kaynağını bir bağlantılı sunucu yapılandırılacak SMO kullanma

SQL Server 2005'te SQL Server Management Objects (SMO), bir Excel veri kaynağına bağlı bir sunucu programsal olarak yapılandırmak için kullanabilirsiniz. Bunu yapmak için <a0></a0>, Microsoft Visual Basic. NET'te veya başka bir programlama dili kullanabilirsiniz. SQL Server Management Studio'yu yapılandırmasında gerekli olan bağımsız değişkenler sağlamanız gerekir. SMO nesne modelini genişletir ve Distributed Management Objects (SQL-DMO) nesne modeli) yerini alır. Because SMO is compatible with SQL Server version 7.0, SQL Server 2000, and SQL Server 2005, you can also use SMO for configuration of 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

Bir Excel veri kaynağına bağlı bir sunucu sorgulaması

Bağlantılı sunucu olarak bir Excel veri kaynağını yapılandırıldıktan sonra Query Analyzer'ı veya başka bir istemci uygulama, verileri kolayca sorgulayabilirsiniz. Örneğin, Excel dosyasının Sayfa1'de depolanan veri satırlarını almak için <a0></a0>, SQL-DMO kullanarak yapılandırdığınız bağlantılı sunucu aşağıdaki kod kullanır:
SELECT * FROM XLTEST_DMO...Sheet1$
				
OPENQUERY Excel bağlantılı sunucu bir "geçiş" şekilde gibi sorgulamak için de kullanabilirsiniz:
SELECT * FROM OPENQUERY(XLTEST_DMO, 'SELECT * FROM [Sheet1$]')
				
OPENQUERY beklediği ilk bağımsız değişken bağlantılı bir sunucu adıdır. Sınırlayıcılar, yukarıda gösterildiği gibi çalışma sayfası adları gereklidir.

Aşağıdaki sorguyu kullanarak Excel bağlantılı sunucu üzerinde kullanılabilen tüm tablolar listesini de edinebilirsiniz:
EXECUTE SP_TABLES_EX 'XLTEST_DMO'
				

Dağıtılmış sorgular'ı kullanarak bir Excel veri kaynağını sorgulanıyor.

Geçici olarak seyrek olarak erişilen sorgu Excel veri kaynakları için SQL Server dağıtılmış sorguları ve OPENDATASOURCE veya OPENROWSET işlevini kullanabilirsiniz.

Not SQL Server 2005 kullanıyorsanız, SQL Server Surface Area Configuration, aşağıdaki örnekte olduğu gibi kullanarak Geçici dağıtılmış sorgular seçeneğini etkinleştirdiğiniz emin olun:
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
   'Data Source=c:\book1.xls;Extended Properties=Excel 8.0')...Sheet1$
				
Not OPENROWSET ("Provider dize") ikinci bağımsız değişken bir seyrek sözdizimini kullanır:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'Excel 8.0;Database=c:\book1.xls', Sheet1$)
				
OPENROWSET ile ikinci ("Provider dize") bağımsız değişkeni için bir ActiveX Data Objects (ADO) geliştirici beklediğiniz sözdizimi:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'Data Source=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$)
				
Bu sözdizimi, Jet Sağlayıcısı aşağıdaki hata yükseltir:
Yüklenebilir ISAM bulunamadı.
Not Bu hata, Veri kaynağı yerine DataSource girerseniz de oluşur. Örneğin, aşağıdaki bağımsız değişkene hatalıdır:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'DataSource=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$) 
				

Referanslar

SQL Server sunucular için bağlı ve dağıtılmış sorgular OLE DB Provider, genel kuralları kullanın ve Excel ile ADO kullanma hakkında cautions Buraya Uygula. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
257819Excel verilerinden Visual Basic'de veya VBA'DA ile ADO kullanma
SQL Server Management Objects hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/ms162169(ide).aspx
Geçici dağıtılmış sorgular seçeneğini etkinleştirme hakkında daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/ms189978(ide).aspx

Özellikler

Makale numarası: 306397 - Last Review: 2 Kasım 2007 Cuma - Gözden geçirme: 6.4
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Developer 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
Anahtar Kelimeler: 
kbmt kbdatabase kbhowto kbjet KB306397 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:306397

Geri Bildirim Ver

 

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