Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

Excel ile SQL Server bağlantılı sunucuları ve dağıtılmış sorgular

ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.

Makalenin İngilizcesi aşağıdaki gibidir: 306397
Özet
Microsoft SQL Server üzerinde kalıcı bir diğer OLE DB veri kaynaklarına bağlantılar veya bir geçici olarak destekler. Kalıcı bağlantı bir bağlantılı sunucu olarak bilinir; tek bir sorgu açısından yapılan bir geçici bağlantı dağıtılmış sorgu olarak bilinir.

Microsoft Excel çalışma kitaplarına SQL Server bu şekilde sorgulamak OLE DB veri kaynağı türüdür. Bu makalede, Excel veri kaynağı sorguladığı bir dağıtılmış sorgu kullanmak için gerekli sözdizimi yanı sıra, bir Excel veri kaynağı bir bağlantılı sunucu olarak yapılandırmak için gereken sözdizimi açıklanmaktadır.
Daha fazla bilgi

Bir Excel veri kaynağı bir bağlantılı sunucu üzerinde sorgulama

SQL Server Management Studio ya da Enterprise Manager kullanabilirsiniz bir sistem saklı yordamı, bir Excel veri kaynağı bir SQL Server bağlantılı sunucu olarak yapılandırmak için SQL-DMO (Distributed Management Objects) veya SMO (SQL Server Management Objects). (SMO, yalnızca Microsoft SQL Server 2005 için kullanılabilir.) Tüm bu durumlarda, her zaman aşağıdaki dört özellikleri ayarlamanız gerekir:
  • Bağlantılı 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 Excel çalışma kitabı olarak tanıtan Sağlayıcı dizesi. Varsayılan olarak, Access veritabanını Jet Sağlayıcısı bekler.
Sp_addlinkedserver sistem saklı yordamı aynı zamanda herhangi bir dize değeri olabilir @srvproduct özelliği umuyor.

Not SQL Server 2005 kullanıyorsanız, Excel veri kaynağı için saklı yordam @srvproduct özelliğinde veya SQL Server Management Studio'da Product name özelliği için boş olmayan bir değer belirtmeniz gerekir.

Excel veri kaynağı bir bağlantılı sunucu olarak yapılandırmak için SQL Server Management Studio ya da Enterprise Manager'ı kullanma

SQL Server Management Studio'yu (SQL Server 2005)
  1. SQL Server Management Studio'da ObjectExplorer'da Sunucu nesneleri ' ni genişletin.
  2. Bağlantılı sunucular' ı sağ tıklatın ve sonra Yeni bir bağlantılı sunucutıklatın.
  3. Sol bölmede, Genel sayfasını seçin ve sonra aşağıdaki adımları izleyin:
    1. İlk metin kutusuna, bağlantılı sunucu için herhangi bir ad yazın.
    2. Seçin <b00> </b00>başka bir veri kaynağını seçeneği.
    3. Sağlayıcı listesinde, Microsoft Jet 4.0 OLE DB sağlayıcısı' nı tıklatın.
    4. Ürün adı kutusuna Excel OLE DB veri kaynağı için adı.
    5. Veri kaynağı kutusunda Excel dosyasının tam yolunu ve dosya adını yazın.
    6. Sağlayıcı dizesi kutusuna Excel 8.0 bir Excel 2002, Excel 2000 veya Excel 97 çalışma kitabı için.
    7. Yeni bağlantılı sunucu oluşturmak için Tamam ' ı tıklatın.
Not SQL Server Management Studio'da sunucu içeren nesnelerin listesini görüntülemek için yeni bir bağlantılı sunucu adı genişletilemiyor.
Enterprise Manager (SQL Server 2000)
  1. Enterprise Manager'da, Security klasörünü genişletmek için tıklatın.
  2. Bağlantılı sunucular' ı sağ tıklatın ve sonra Yeni bir bağlantılı sunucutıklatın.
  3. Genel sekmesinde, aşağıdaki adımları izleyin:
    1. İlk metin kutusuna, bağlantılı sunucu için herhangi bir ad yazın.
    2. Sunucu türü kutusunda başka bir veri kaynağınıtıklatın.
    3. Sağlayıcı adı listesinde, Microsoft Jet 4.0 OLE DB sağlayıcısı' nı tıklatın.
    4. Veri kaynağı kutusunda Excel dosyasının tam yolunu ve dosya adını yazın.
    5. Sağlayıcı dizesi kutusuna Excel 8.0 bir Excel 2002, Excel 2000 veya Excel 97 çalışma kitabı için.
    6. Yeni bağlantılı sunucu oluşturmak için Tamam ' ı tıklatın.
  4. Liste içerdiği nesnelerin genişletmek için yeni bağlantılı sunucu adı'nı tıklatın.
  5. Yeni bağlantılı sunucu adı altında tablolar' ı tıklatın. Çalışma sayfaları ve adlandırılmış aralıkları rightpane görüntülendiğine dikkat edin.

Excel veri kaynağı bir bağlantılı sunucu olarak yapılandırmak için bir saklı yordam kullanarak

Sp_addlinkedserver sistem saklı yordamı, bir Excel veri kaynağı bir bağlantılı sunucu olarak yapılandırmak için de kullanabilirsiniz:
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				
Yukarıda belirtildiği gibi bu saklı yordam Enterprise Manager ve SQL Server Management Studio'da yapılandırma "ürün adı" olarak görünür @srvproduct bağımsız değişkeni için bir ek, rasgele dize değeri gerektirir. @Location ve @catalog bağımsız değişkenleri kullanılmaz.

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

SQL Distributed Management Objects bağlantılı sunucudan programlı olarak Microsoft Visual Basic veya başka bir programlama dili olarak bir Excel veri kaynağını yapılandırmak için kullanabilirsiniz. Enterprise Manager ve SQL Server Management Studio yapılandırmada gerekli aynı dört baðýmsýz deðiþkenleri saðlamalýsýnýz.
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				

Excel veri kaynağı bir bağlantılı sunucu olarak yapılandırmak için SMO kullanarak

SQL Server 2005'te SQL Server yönetim nesneleri (SMO), program aracılığıyla bir Excel veri kaynağı bir bağlantılı sunucu olarak yapılandırmak için kullanabilirsiniz. Bunu yapmak için Microsoft Visual Basic .NET ya da başka bir programlama dili kullanabilirsiniz. SQL Server Management Studio yapılandırmada gerekli baðýmsýz deðiþkenleri saðlamalýsýnýz. SMO nesne modelini genişletir ve Distributed Management Objects (SQL-DMO) nesne modeli yerini alır. SMO SQL Server sürüm 7.0, SQL Server 2000 ve SQL Server 2005 ile uyumlu olduğu için SMO SQL Server 2000 yapılandırması için de kullanabilirsiniz.
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

Bir Excel veri kaynağı bir bağlantılı sunucu üzerinde sorgulama

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

Ayrıca, aşağıdaki sorguyu kullanarak Excel bağlantılı sunucu üzerinde kullanılabilir tüm tablolar listesini elde edebilirsiniz:
EXECUTE SP_TABLES_EX 'XLTEST_DMO'				

Dağıtılmış sorgular kullanarak bir Excel veri kaynağı sorgulanırken

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

Not SQL Server 2005 kullanıyorsanız, aşağıdaki örnekte olduğu gibi SQL Server Surface Area Configuration'ı kullanarak Ad Hoc dağıtılmış sorgular seçeneğini etkinleştirdiğinizden emin olun:
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',   'Data Source=c:\book1.xls;Extended Properties=Excel 8.0')...Sheet1$				
Not OPENROWSET ikinci ("Sağlayıcı dize") bağımsız değişkeni bir seyrek sözdizimini kullanır:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',    'Excel 8.0;Database=c:\book1.xls', Sheet1$)				
İkinci ("Sağlayıcı dize") bağımsız OPENROWSET ile kullanmak için ActiveX Data Objects (ADO) Geliştirici beklediğiniz sözdizimi aşağıdaki gibidir:
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 oluşur:
Yüklenebilir ISAM bulunamadı.
Not Ayrıca girerseniz, bu hata ortaya çıkar Veri kaynağı yerine Veri kaynağı. Örneğin, aşağıdaki bağımsız değişkene yanlýþtýr:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'DataSource=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$) 				
Referanslar
Çünkü SQL Server bağlantılı sunucuları ve dağıtılmış sorgular OLE DB sağlayıcısı, genel kuralları kullanın ve ADO kullanarak Excel ile ilgili uyarılar burada uygulayın. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklayın:
257819 ADO'yu Visual Basic veya VBA'daki Excel verileriyle kullanma hakkında
SQL Server yönetim nesneleri hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:Ad Hoc dağıtılmış sorgular seçeneği etkinleştirme hakkında daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 306397 - Son İnceleme: 03/15/2015 09:41:00 - Düzeltme: 7.0

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

  • kbsqlsetup kbdatabase kbhowto kbjet kbmt KB306397 KbMttr
Geri bildirim