| 
                
             | 
        
        
            
                
                    
                        | 
                            Data Transformation Services ile Access 'ten SQL Server’a veri aktarma | 
                        
                             | 
                                
                     
                    
                        
                            
	
    
		
            | Gönderiliyor lütfen bekleyin... |   
        
	 
    
 
                         | 
                     
                 
             | 
        
        
            
                
                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 
             | 
        
        
            | 
             | 
        
        
            | 
                 
             | 
        
        
            
                
                
                    
                        - 
                            
                        
 
                        - 
                            
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
                         
                     
                 
                
                
             | 
        
        
            | 
                
             |