Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Ahmet Sait  Duran
Ahmet Sait Duran
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
1 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: access activex butonuna connection degisiklik destination herhangi isimli kismindan package script server server’a tablonun transformation ADO.NET/SQL Ahmet Sait Duran
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Orta
Kategori : ADO.NET/SQL
Yayınlanma Tarihi : 8.3.2006
Okunma Sayısı : 48957
Yorum Sayısı : 4     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 3.12.2024
Turhal Temizer
Mac OS/X Removing CUDA 3.12.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 3.12.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 3.12.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Data Transformation Services ile Access 'ten SQL Server’a veri aktarma
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Bazen Access, Excel, HTML, bir text dosyası ya da üçüncü parti bir veritabanındaki tabloların belirli bir kritere uyanlarını SQL Server’a ya da SQL Server’daki tabloların bir bölümünü başka bir yere aktarmak isteyebilirsiniz. İşte böyle bir durumla karşı karşıya kalırsanız, SQL Server içerisindeki Data Transformation Services(DTS) kullanabilirsiniz. Bu makalemizde bir örnek ile konuyu anlatacağım.

Öncelikle örneğimizi ve ne yapmak istediğimizi kısaca anlamaya çalışalım. Yapmak istediğimiz şey, Access veri tabanı içerisinde yer alan bir tabloyu SQL Server’a aktarmak. Bu işlem çok basit olduğu için ben biraz karmaşıklaştırma ihtiyacı hissettim ve şöyle bir kurgu geliştirdim. Çünkü DTS paketleri daha çok karmaşık gibi duran durumlarda sıklıkla kullanılır. Ve bu karmaşık durumların rahatlıkla çözülmesine yardımcı olur. Access veritabanımızdaki tablonun (tablomuzun ismi “kayitlar”) görüntüsü aşağıdaki gibidir.   

     

Şekil 1: kayıtlar Tablosu ve kayıtları        

Biz bu tablodan sadece Urun sütununda içerisinde "kitap" kelimesi geçen kayıtları alacağız ve Sehir sütunundaki kayıtların hepsini büyük harflerle SQL Server’daki veritabanımıza kaydedeceğiz. Örneğin ankara olarak değil, ANKARA olarak kaydedilmesini sağlayacağız.

Öncelikle SQL Server Enterprise Manager’i açalım. Data Transformation Services’i açarak Local Packages üzerine sağ tıklıyor ve “New Package” diyelim.                    

Şekil 2: Yeni Package paketi oluşturma.

DTS Package sayfasının Connection kısmından Microsoft Access’e tıklıyoruz. Gelen Connection properties penceresinde yapmamız gereken tek şey, File name kısmının yanındaki üç noktaya tıklamak ve SQL Server’a transfer etmek istediğimiz tablonun yer aldığı  .mdb dosyasını seçmek ya da dosya yolunu girmek. Benim hazırlamış olduğum Access veritabanının adı "veritabanı". Dosyamızı seçtikten sonra; bu sayfada isterseniz New connection kısmından bağlantının ismini değiştirebilirsiniz. Ancak, biz herhangi bir değişiklik yapmıyoruz.

Şekil 3: Access ile bağlatı oluşturma.        

Bu Access veritabanı bizim kaynağımız(source) oldu. Şimdi de göndereceğimiz yeri(destination ) seçiyor ve Connection kısmından Microsoft OLE DB Provider for SQL Server seçeneğine tıklıyoruz. Eğer ağınızda birden fazla SQL Server hizmet veriyorsa, bu sayfadaki Server kısmından verileri hangi SQL Server üzerine kaydedecekseniz onu seçebilirsiniz. Biz local’de çalıştığımız için Server kısmında herhangi bir değişiklik yapmıyoruz. Authentication olarak Windows Authenticationu kullanacağız. Database seçeneğinde kullanacağımız veritabanının seçelim. 

Şekil 4: Kullanılacak veritabanının seçilmesi     

Daha sonra DTS Package sayfasındaki Task bölümünden Transfromation Data Task aracını seçin. Source olarak Microsoft Access, destination olarak ise SQL Server’a secin. DTS Package sayfasındaki son görüntünüz aşağıdaki gibi olmalıdır.

Şekil 5: DTS paketinin son görüntüsü  

Daha sonra bu iki veritabanı arasındaki Transform Data Taskın üzerine sağ tıklayarak Propertiesi seçiyoruz. Gelen bu sayfanın Source tab sekmesinden SQL query radio buttonunu seçiyor ve aşağıdaki SQL sorgusunu yazıyoruz (Select * from kayitlar where Urun like ‘%kitap%’)

Şekil 6: SQL Sorgusu

Bu sorguyla Access veritabanındaki “kayitlar” isimli tabloda yer alan ve “Urun” sütununda “kitap” kelimesi geçen satırlar okunuyor. Buraya yazmış olduğunuz SQL sorgusunun doğruluğunu test etmek için Parse Query butonuna tıklayabilirsiniz.

Source  sekmesinde başka herhangi bir değişiklik yapmadan, Destination sekmesine geçiyoruz ve karşımıza Create Destination Table isimli bir form geliyor. Bu formda isterseniz değişiklikler yapabilirsiniz. Örneğin, SQL Server’da yeni oluşacak tablonun ismi [New Table] olarak gösteriliyor. Ben, [New Table] kısmını değiştirerek [accesstenSQLe] ismini veriyorum. Böylece CSharpnedir isimli databasinin içerisinde oluşacak olan tablomun adı accesstenSQLe olacaktır.

Şekil 7: Tablo oluşturma.

Transformations tab sekmesine geçiyoruz. Eğer isterseniz burada Select All seçeneğini seçip işlemi tamamlayabilirsiniz. Ancak bizim bir diğer amacımız da, Access veritabanımız içindeki tablomuzun “Sehir” isimli sütununda yer alan kayıtların büyük harflere çevrilerek SQL’e aktarılmasını sağlamaktı. Bu işlemi gerçekleştirmek için ActiveX Script yazmamız gerekiyor. Bunun için Transformations tab sekmesinde Delete All butonuna tıklıyor ve daha sonra New butonuna tıklıyoruz.

Şekil 8:Alanların eşleştirilmesi.

New butonuna tıkladıktan sonra gelen ekrandan ActiveX Scripti seçiyoruz.Karşımıza  aşağıdaki ekran gelecektir.

Şekil 9: Transafer özellikleri

Şimdilik General tab sekmesinde herhangi bir değişiklik yapmadan, Source Columns ve Destination Columns sekmelerinin ikisinde de aşağıdaki değişiklikleri yapıyoruz.Burda hangi kolonları kullanacağımızı seçiyoruz.

Şekil 10: Alanlarda yapılacak değişiklikler.

Bu değişiklikleri yaptıktan sonra tekrar General sekmesine geçiyor ve Properties butonuna tıklıyoruz. Karşımıza ActiveX Script Transformation Properties penceresi geliyor. Burada yapmamız gereken tek şey, VB Script Language’i kullanarak şehir isimlerini büyük harfe çevirmek. UpperCase, yani UCase fonksiyonunu kullanarak aşağıdaki değişikliği yapıyoruz.

Şekil 11: ActiveX Script Task a VB Scritt ile kod yazma

Bu sayfada yer alan Test butonuna tıklayarak yazmış olduğunuz script’in doğruluğunu test edebilirsiniz.Tamam seçeneğini seçtikten sonra Transformations Options penceresi karşımıza geliyor.

Şekil 12: Alanların eşleştirlmesi

Local Packages içerisinde CSharpnedir tablo isminde bir package oluşuyor ve bunun üzerine sağ tıklayıp Execute Package diyoruz.

 

Şekil 12: DTS paketini çalıştırmak.

Dts paketinin düzgün açılışıp çalımadığını kontrol etmek için Csharpnedir veritabanını kontrol edelim.Bu tabloyu ilk tablomuzla karşılaştırırsanız, sadece Urun sütununda kitap kelimesi geçen kayıtların transfer edildiğini ve şehir isimlerinin büyük harflere çevrilmiş olduğunu görebilirsiniz.

Şekil 13: Csharpnedir veritabında Tablonun son hali.

DTS sayesinde sadece Access’ten SQL Server’a değil; Excel’den SQL’e, SQL’den text dosyasına, SQL’den SQL’e… gibi daha birçok transformation işlemini gerçekleştirebilirsiniz.

Makalede, daha faydalı olabileceğini düşünerek bol resme yer vermeye çalıştım. Bu amaçla, csharpnedir.com okuyucularına bir nebzecik olsun faydalı olabildiysem ne mutlu. Bu uygulamayı geliştirerek çok daha kullanışlı bir yapı elde edebilirsiniz. Özellikle ActiveX Script fonksiyonlarını kullanarak birçok kullanışlı script oluşturabilirsiniz. Ayrıca farklı SQL sorguları kullanarak daha güzel sonuçlar elde edebilirsiniz.  

 

Makale:
Data Transformation Services ile Access 'ten SQL Server’a veri aktarma ADO.NET ve SQL Ahmet Sait Duran
  • Yazılan Yorumlar
  • Yorum Yaz
HAZ
24
2008
(1-2 sene gecikmiş bir cevaptır) SQL Server 2005te DTS yerine import & export wizardı kullanabilirsiniz...
AĞU
29
2006
SQL Server 2005te de DTS paketleri oluşturulabilir ve güncellenebilir. Zannediyorum lisanslama ile ilgili bir probleminiz vardır. Lisans sorununu hallederseniz DTSi SQL Server 2005te de rahatlıkla kullanabilirsiniz...
AĞU
29
2006
Çok faydalı bir bir araç için, anlaşılır sade bir makale olmuş. Fakat bir sorun var. Sanırım MS SQL SERVER2005 te DTS paketleri oluşturulamıyor ve güncellenemiyor. Sadece SQL Server 2000 ile oluşturulmuş paketleri SQL Server 2005 e taşıyabiliyoruz. SQL Server 2005 te DTS imkanlarıdan faydalanmanın bir yolu var mı?
MAR
13
2006
Elinize saglik güzel bir makale olmus. DTS ile ilgili makalelerin devami gelir umarim.
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor