Microsoft hesabıyla oturum açın
Oturum açın veya hesap oluşturun.
Merhaba,
Farklı bir hesap seçin.
Birden çok hesabınız var
Oturum açmak istediğiniz hesabı seçin.

Özet

Microsoft SQL Server, diğer OLE DB veri kaynaklarına olan bağlantıları kalıcı veya geçici olarak destekler. Kalıcı bağlantı bağlantılı sunucu olarak bilinir; tek bir sorgu nun iyiliği için yapılan geçici bir bağlantı dağıtılmış sorgu olarak bilinir. Microsoft Excel çalışma kitapları, SQL Server üzerinden bu şekilde sorgulayabileceğiniz bir OLE DB veri kaynağıdır. Bu makalede, bir Excel veri kaynağını bağlı sunucu olarak yapılandırmak için gereken sözdiziminin yanı sıra, Excel veri kaynağını sorgulayan dağıtılmış bir sorguyu kullanmak için gerekli sözdizimi açıklanmaktadır.

Ek Bilgi

Bağlantılı bir sunucuda Excel veri kaynağını sorgulama

Bir Excel veri kaynağını SQL Server bağlantılı sunucu olarak yapılandırmak için SQL Server Management Studio veya Enterprise Manager,sistem depolanan yordamı, SQL-DMO (Distributed Management Objects) veya SMO (SQL Server Management Objects) kullanabilirsiniz. (SMO yalnızca Microsoft SQL Server 2005 için kullanılabilir.) Tüm bu durumlarda, her zaman aşağıdaki dört özelliği ayarlamanız gerekir:

  • Bağlantılı sunucu için kullanmak istediğiniz ad.

  • Bağlantı için kullanılacak Olan OLE DB Sağlayıcısı.

  • Excel çalışma kitabının veri kaynağı veya tam yolu ve dosya adı.

  • Hedefi Excel çalışma kitabı olarak tanımlayan sağlayıcı dizesi. Varsayılan olarak, Jet Sağlayıcı bir Access veritabanı bekler.

Sistem depolanan yordam sp_addlinkedserver aynı zamanda herhangi bir dize değeri olabilir @srvproduct özelliği, bekliyor. Not SQL Server 2005 kullanıyorsanız, SQL Server Management Studio'daki Ürün adı özelliği veya excel veri kaynağı için depolanan yordamdaki @srvproduct özelliği için boş olmayan bir değer belirtmeniz gerekir.

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

SQL Server Management Studio (SQL Server 2005)
  1. SQL Server Management Studio'da Object Explorer'daSunucu Nesneleri'ni genişletin.

  2. Bağlantılı Sunucular'ısağ tıklatın ve ardından Yeni bağlantılı sunucuyutıklatın.

  3. Sol bölmede Genel sayfayı seçin ve ardından aşağıdaki adımları izleyin:

    1. İlk metin kutusuna, bağlı sunucu için herhangi bir ad yazın.

    2. Diğer veri kaynağı seçeneğini seçin.

    3. Sağlayıcı listesinde, Microsoft Jet 4.0 OLE DB Sağlayıcısı'nıtıklatın.

    4. Ürün adı kutusuna, OLE DB veri kaynağının adı için Excel yazın.

    5. Veri kaynak kutusuna, Excel dosyasının tam yolunu ve dosya adını yazın.

    6. Sağlayıcı dize kutusunda, Excel 2002, Excel 2000 veya Excel 97 çalışma kitabı için Excel 8.0 yazın.

    7. Yeni bağlantılı sunucuyu oluşturmak için Tamam'ı tıklatın.

Not SQL Server Management Studio'da, sunucunun içerdiği nesnelerin listesini görüntülemek için yeni bağlantılı sunucu adını genişletemezsiniz.

Kurumsal Yönetici (SQL Server 2000)
  1. Kurumsal Yönetici'de Güvenlik klasörünü genişletmek için tıklatın.

  2. Bağlantılı Sunucular'ısağ tıklatın ve ardından Yeni bağlantılı sunucuyutıklatın.

  3. Genel sekmesinde aşağıdaki adımları izleyin:

    1. İlk metin kutusuna, bağlı sunucu için herhangi bir ad yazın.

    2. Sunucu türü kutusunda, Diğer 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 kaynak kutusuna, Excel dosyasının tam yolunu ve dosya adını yazın.

    5. Sağlayıcı dize kutusunda, Excel 2002, Excel 2000 veya Excel 97 çalışma kitabı için Excel 8.0 yazın.

    6. Yeni bağlantılı sunucuyu oluşturmak için Tamam'ı tıklatın.

  4. Yeni bağlantılı sunucu adını genişletmek için içerdiği nesnelerin listesini genişletmek için tıklatın.

  5. Yeni bağlantılı sunucu adı altında Tablolar'ıtıklatın. Çalışma sayfalarınızın ve adlandırılmış aralıklarınızın doğru bölmede göründüğüne dikkat edin.

Excel veri kaynağını bağlantılı sunucu olarak yapılandırmak için depolanan yordamı kullanma

Ayrıca, bir Excel veri kaynağını bağlantılı sunucu olarak yapılandırmak için sistem depolanan yordamı sp_addlinkedserver 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 depolanan yordam, Enterprise Manager ve SQL Server Management Studio yapılandırmasında "Ürün adı" olarak görünen @srvproduct bağımsız değişkeni için ek, rasgele bir dize değeri gerektirir. @location ve @catalog bağımsız değişkenleri kullanılmaz.

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

Bir Excel veri kaynağını Microsoft Visual Basic veya başka bir programlama dilinden programlı olarak bağlı sunucu olarak yapılandırmak için SQL Distributed Management Objects'i kullanabilirsiniz. Enterprise Manager ve SQL Server Management Studio yapılandırmasında gereken aynı dört bağımsız değişkeni sağlamanız gerekir.

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

Bir Excel veri kaynağını bağlantılı sunucu olarak yapılandırmak için SMO'yu kullanma

SQL Server 2005'te, bir Excel veri kaynağını bağlı sunucu olarak programlamak için SQL Server Management Objects (SMO) kullanabilirsiniz. Bunu yapmak için Microsoft Visual Basic .NET veya başka bir programlama dilini kullanabilirsiniz. SQL Server Management Studio yapılandırmasında gereken bağımsız değişkenleri sağlamanız gerekir. SMO nesne modeli, Dağıtılmış Yönetim Nesneleri (SQL-DMO) nesne modelini genişletir ve bunun yerini alarır. SMO, SQL Server 7.0, SQL Server 2000 ve SQL Server 2005 ile uyumlu olduğundan, SMO'yu 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

Bağlantılı bir sunucuda Excel veri kaynağını sorgulama

Bir Excel veri kaynağını bağlantılı sunucu olarak yapılandırdıktan sonra, verilerini Sorgu Çözümleyici'den veya başka bir istemci uygulamasından kolayca sorgulayabilirsiniz. Örneğin, Excel dosyanızın Sheet1'inde depolanan veri satırlarını almak için aşağıdaki kod, SQL-DMO kullanarak yapılandırdığınız bağlantılı sunucuyu kullanır:

SELECT * FROM XLTEST_DMO...Sheet1$

Excel'e bağlı sunucuyu aşağıdaki gibi "geçiş" şeklinde sorgulamak için OPENQUERY'yi de kullanabilirsiniz:

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

OPENQUERY'nin beklediği ilk bağımsız değişken bağlantılı sunucu adıdır. Yukarıda gösterildiği gibi, çalışma sayfası adları için sınır layıcılar gereklidir. Ayrıca, aşağıdaki sorguyu kullanarak Excel bağlantılı sunucuda bulunan tüm tabloların listesini de alabilirsiniz:

EXECUTE SP_TABLES_EX 'XLTEST_DMO'

Dağıtılmış sorguları kullanarak Excel veri kaynağını sorgulama

SQL Server dağıtılmış sorguları ve OPENDATASOURCE veya OPENROWSET işlevini, seyrek erişilen Excel veri kaynaklarını geçici olarak sorgulamak için kullanabilirsiniz. Not SQL Server 2005 kullanıyorsanız, aşağıdaki örnekte olduğu gibi SQL Server Surface Area Configuration'ı kullanarak Ad Hoc Distributed 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$

OPENROWSET'in ikinci ("Sağlayıcı Dizgesi") bağımsız değişkeni için nadir görülen bir sözdizimi kullandığını unutmayın:

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

ActiveX Veri Nesneleri (ADO) geliştiricisinin OPENROWSET ile ikinci ("Sağlayıcı Dizgesi") bağımsız değişkeni için kullanmayı bekleyebileceği 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ıdan aşağıdaki hatayı yükseltir:

Yüklenebilir ISAM bulamadım.

Not Bu hata, Veri Kaynağıyerine DataSource girerseniz de oluşur. Örneğin, aşağıdaki bağımsız değişken yanlıştır:

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

Başvurular

SQL Server bağlantılı sunucular ve dağıtılmış sorgular OLE DB Sağlayıcısı'nı kullandığından, Excel ile ADO kullanma konusunda genel kurallar ve uyarılar burada geçerlidir. Daha fazla bilgi için, Makaleyi Microsoft Bilgi Bankası'nda görüntülemek için aşağıdaki makale numarasını tıklatın:

257819 Visual Basic veya VBA'dan Excel verileriyle ADO nasıl kullanılır?SQL Server Management Objects hakkında daha fazla bilgi için aşağıdaki Microsoft Geliştirici Ağı (MSDN) Web sitesini ziyaret edin:

http://msdn2.microsoft.com/en-us/library/ms162169(ide).aspx Ad Hoc 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

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?
Gönder’e bastığınızda, geri bildiriminiz Microsoft ürün ve hizmetlerini geliştirmek için kullanılır. BT yöneticiniz bu verileri toplayabilecek. Gizlilik Bildirimi.

Geri bildiriminiz için teşekkürler!

×