MS Excel ile Veri Okuma / Yazma

<< Click to Display Table of Contents >>

Navigation:  Likom Gusto Olay Yönetimi > Faydalı Bilgiler > SQL Linked Server ile Veri Okuma/Yazma >

MS Excel ile Veri Okuma / Yazma

Previous pageReturn to chapter overviewNext page
Show/Hide Hidden Text

Excel dosyasından veri okumak ve dosyaya veri yazmak için Microsoft Access Database Engine 2010 Redistributable paketinin yüklenmesi gerekebilir. İşletim sisteminize uygun paketi bilgisayarınıza kurmalısınız.

 

Linked Server oluşturmak için Veri tabanına sa (System Administrator) ile bağlantı kurulmalıdır. Ekranın Object Explorer penceresinden Server Objects  üzerindeyken sağ tuşa basılır ve beliren menüden New Arrow_rLinked Server seçeneği seçilir.

Linked Server Oluşturma

Linked Server Oluşturma

Açılan diyalogta gerekli düzenlemeler yapılmalıdır

Linked Server ile Excel Bağlantısı Sağlama

Linked Server ile Excel Bağlantısı Sağlama

 

Provider String özelliği dosya formatına göre değişiklik göstermektedir. Dosya formatına göre Provider String özellikeri tabloda verilmiştir

 

Excel Formatı

Provider String

Excel 97-2003 Workbook (.xls)

Excel 8.0

Excel 2007-2010 Workbook (.xlsx)    

Excel 12.0 Xml

Excel 2007-2010 Macro-enabled workbook (.xlsm)

Excel 12.0 Macro

Excel 2007-2010 Non-XML binary workbook (.xlsb)

Excel 12.0

 

Pencere OK düğmesine basılarak kapatıldıktan sonra Object Explorer Arrow_r Linked Server altında oluşturulan bağlantı görülebilir.

 

Excel kullanılarak oluşturulan Linked Server Görünümü

Excel kullanılarak oluşturulan Linked Server Görünümü

 

Örnek olarak kullanılacak Excel dosyası(kullanicilar.xlsx) aşağıdaki  gibi organize edilmiştir.

 

Excel Örnek Dosyası

Excel Örnek Dosyası

Excel dosyası basitçe "Adı","Soyadı","TCKimlik" ve "Baslangıç Tarihi" alanlarını içermektedir.

 

tog_minusLinked Server için Select sorgusu koşma

İki farklı yöntem kullanılabilir. Bu yöntemlerden birincisi OpenQuery kullanarak çalıştırma, diğer ise 4 parçalı sorgu oluşturmadır.

 

tog_minus_sev2OpenQuery kullanarak select sorgusu hazırlama

Örneğin İlk Sayfadaki(Sheet1) veriler almak için :

select * from OpenQuery(EXCEL,'select * from [Sheet1$]')

sorgusu çalıştırılabilir.

 

tog_minus_sev24 parçalı sorgu hazırlama

OpenQuery için verilen örneğin 4 parçalı hali:

select * from [EXCEL]...[Sheet1$]

şeklindedir.

 

 

 

 

tog_minusLinked Server için Update sorgusu koşma

 

tog_minus_sev2OpenQuery kullanarak Update sorgusu hazırlama

Örneğin Sheet1 tablosunda Adı 'Gusto' olan kullanıcının TCKimlik Alanını 12345678901 yapalım.

 

update OpenQuery(EXCEL,'select * from [Sheet1$]') set TCKimlik ='12345678901' where Adý='Gusto'

sorgusu çalıştırılabilir.

 

tog_minusLinked Server için Insert sorgusu koşma

 

tog_minus_sev2OpenQuery kullanarak Update sorgusu hazırlama

Örneğin Sheet1 tablosuna yeni bir satır ekleyelim.

 

insert OpenQuery(EXCEL,'select * from [Sheet1$]')(Adı,Soyadı,[TCKimlik],[Baslangıç Tarihi]) values('Gusto','Olay Yönetimi','12345678901',GETDATE())

sorgusu çalıştırılabilir.

 

Satır eklendikten sonra Excel'in görünümü

Satır eklendikten sonra Excel'in görünümü

 

 

tog_minusLinked Server için Delete sorgusu koşma

Silme işlemi kısıtlıdır.