Sözlük

T-SQL etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
T-SQL etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

2 Temmuz 2015 Perşembe

SQL Server’dan Access’e Veri Aktarımı

Access’de boş bir veritabanı oluşturuyoruz. Üstteki ribbon menüden “Dış Veri – ODBC Veritabanı” seçeneğini seçiyoruz.
Resim yazısı ekle

Aşağıdaki gibi bir pencere geliyor ve “Tamam” diyerek devam ediyoruz.


Aşağıdaki pencerede “Machine Data Source” tabına geçerek “New” butonuna tıklıyoruz.


Aşağıdaki uyarıyı “OK” diyerek geçiyoruz.


Aşağıdaki pencerede “Next” diyerek devam ediyoruz.


Aşağıdaki listeden “SQL Server” seçimini seçip “Next” diyerek devam ediyoruz.


Aşağıdaki pencerede “Finish” diyerek yeni bir ayara geçiyoruz.


Aşağıdaki pencerede “Name” bölümüne bağlantımıza bir isim veriyoruz.“Description” isteğe bağlı. “Server” bölümüne bağlanmak istediğimiz SQL Server ismini yazıyoruz. “Next” diyerek devam ediyoruz.



Aşağıdaki pencerede SQL Server’a hangi credential ile bağlanacağımızı söylüyoruz ve “Next” diyerek devam ediyoruz.


Aşağıdaki pencerede kırmızı ile gösterilen yerde verileri almak istediğimiz "Database"i seçip “Next” diyerek devam ediyoruz.


Aşağıdaki pencerede “Finish” diyerek devam ediyoruz.


Aşağıdaki pencerede “Test Data Source” diyerek bağlantımızı sınıyoruz.


Aşağıdaki gibi bir onay aldıktan sonra üç pencereye de “OK” diyerek devam ediyoruz.


Aşağıdaki tablo penceresinden almak istediğimiz tabloları seçip “Tamam”diyerek verimizi artık Access veritabanına alıyoruz





25 Haziran 2015 Perşembe

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

Merhaba arkadaşlar,
Bu makalede Jquery kütüphanesinden yararlanarak Asp.NET (C#) ile çoklu resim yüklüyebileceğimiz bir WebForm uygulaması yapacağız.

Uygulamamızın sahip olacağı özellikler:
  • Çoklu resim yükleme
  • Yükleme esnasında resimlerin boyutlandırılması
  • Veri tabanına resim yollarının kaydedilmesi
1-) Şimdi Sql Server 2008 yazılımını çalıştırıp yeni bir veri tabanı oluşturarak uygulamamızı geliştirmeye başlıyalım.
Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma
ResimId : Her resim için bağımsız değer tutulur.Otomatik artan sayı ve birinci anahtar özellikleri belirlenir.
ResimYolu : Yüklenen resmin adının tutulacağı alan.
2-) Uygulamamızda kullanıcağımız dosyaları indirelim.
http://resim.sanalkurs.net/uploads/gerekli_dosyalar.jpg
jquery.js : Javascript kütüphanesi.
multi.js : Javascript kütüphanesine ait çoklu dosya yükleme eklentisi.
3-) Visual Studio yazılımını çalıştırıp yeni bir Web Sitesi tanımlıyoruz.
4-) Projemizi oluşturduktan sonra indirdiğimiz dosyaları proje kök dizinine kopyalayalım ve resim dosyalarımızın tutulacağı dizinleri oluşturalım.
Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma
js : Javascript kütüphane ve eklentilerimizin bulunduğu klasör.
Resimler : Resim dosyalarımızın tutulacağı ana dizin.
150 : 150 pixel genişliğindeki resim dosyalarımızın tutulacağı dizin.
800 : 150 pixel genişliğindeki resim dosyalarımızın tutulacağı dizin.
Temp : Yüklenen orjinal resim dosyalarımızın tutulacağı dizin.
5-) Default.aspx sayfamızı açıp komponentlerimizi ekliyoruz.
Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma
FileUpload : Dosya yüklemek için. ID sini fileResimler olarak değiştirelim. Class ını multi olarak belirtiyoruz.
Buton : Resimlerimizi seçtikten sonra yükleme işlemini başlatmak için. ID sinibtnResimYukle olarak değiştirelim.
Label : Yüklenen dosyalarımızın bildirilmesi için. ID sini lblMesaj olarak değiştirelim.
6-) Default.aspx sayfamızın Source kısmına geçerek gerekli dosyalarımızı çağırıyoruz.

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

7-) Default.aspx.cs dosyasını açarak uygulamamızda kullanıcağımız C# kütüphanelerini projemize dahil ediyoruz.

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

Yüklediğimiz resimleri boyutlandırmak için kullanıcağımız ResimBoyutlandir adlı methodumuzu oluşturalım.

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

Methodumuz iki adet parametre alıyor ve geriye boyutlandırılmış resmimizi döndürüyor.
resim : Boyutlandırılacak olan orjinal resim.
boyut : Kullanılacak olan genişlik değeri.
ydeger : Kullanılacak olan yeni genişlik ve yükseklik değerleri.
yresim : Yeni oluşturulan resim.
9-) Şimdi btnResimYukle ID li butonumuza tıkladığımızda çalışacak olan resim yükleme kodlarımızı yazalım.

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

10-) Şimdi uygulamamızı çalıştırıp resim yüklemeyi deneyelim.
* Dört adet resim seçip Resim(leri) Yükle butonuna tıklıyoruz.

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

* Resimlerin yüklendiğini oluşturduğumuz Label komponentinde bize bildirdi.

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

* Temp klasörümüze seçtiğimiz resimler yüklendi ama 150 ve 800 isimli klasörlerimizin boş olduğunu görüyoruz çünkü ResimBoyutlandir isimli methodumuzu henüz kullanmadık.

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

11-) Dikkat ettiyseniz resimlerimizin ismi ingilizceye dönüşmüş olarak kaydedildi bunu jquery eklentimiz sağlamıştır.Ama aynı isimde dosya yükleme kalktığımızda problem oluşabileceği için resimlerin yüklenirken eşsiz bir isimde kaydedilmesi için gereken düzenlemeyi yapalım şimdide.
* Resim ad ve uzantılırımızın saklanacağı string değişkenlerimizi ana sınıfımız içerisinde oluşturalım.

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

* Resmin uzantısını uzanti adlı string değişkenimize atıyoruz.
* resimadi adlı string değişkenimizdede DateTime sınıfından yararlanarak benzersiz bir değer oluşturup sonunada resim uzantısını ekleyerek resmimize atanacak yeni adı oluşturuyoruz.

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

* Resmi resimadi değişkenindeki adla kaydetmek için kod satırımızdaki fileName yerine resimadi değişkenizi kullanıyoruz.

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

12-) Uygulamamızı yeniden çalıştırıp yeni yüklenen resimlerin isimlerine bakacak olursak değiştiğini göreceğiz.

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

13-) ResimBoyutlandir methodumuzu kullanarak resimlerimizi boyutlandıralım.

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

resim : Yeni bir bitmap nesnesi oluşturup yüklenen resmimizi bu nesneye atıyoruz.
resim : Oluşturduğumuz bitmap nesnesine 150px genişliğinde oluşturulan yeni resmi atıyoruz.
[b]resim.Save : Oluşturulan yeni resmi 150 adlı klasörümüze kaydediyoruz.
* 800px genişliğindeki resmin oluşturulması için kodumuzu biraz düzenliyoruz.

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

14-) Uygulamamızı çalıştırdığımızda yüklediğimiz resimlerin orjinallerinin yanında iki farklı boyutta (150px ve 800px genişliğinde) kopyalarının oluştuğunu görüyoruz.

* Temp klasörü

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

* 150 klasörü

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

* 800 klasörü

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

15-) Son adım olarak yüklenen resimlerinin adlarının veri tabanına kaydedilmesi için gereken kodları uygulamamıza ekleyelim.

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma

16-) Uygulamamızı çalıştırdığımızda yüklenen resimlerin adlarının veri tabanına kaydedildiğini görüyoruz.

Asp.NET ile Çoklu Resim Yükleme ve Boyutlandırma


Kaynak dosyayı indirmek için tıklayın

Bu Yazı SanalKurs.NET sitesinden Burak KIRBAĞ tarafından yazılmıştır.

6 Nisan 2015 Pazartesi

Bir Sql Tablosundan Random Row Getirme

SQL Database inden rastgele row lar seçmek için güzel bir sql query sini sizinle paylaşacağım. Aslında, sözderastsal sayı üreten bir query. (sözderastsal sayılar hakkında detaylı bilgi: wikipedia) Sözderastsal sayılar kriptoloma da dahil bir çok alanda kullanılmakta. Konuyu dağıtmadan, eğer projenizde rastgele haberleri getirmek, rastgele üyeler arasından seçim yapmak veya eğitim projelerinizde random soru getirmek gibi değişik amaçlarla sql den veri çağırmanıza ihtiyacınız olursa;

 SELECT TOP 10 * FROM News ORDER By NEWID()

Makalenin Kaynağı



SQL Server Data Compression - Row Level Compression, Page Level Compression

Sql Server performansını arttıracak en önemli etmenlerden biri de veri sıkıştırmasının yapılmasıdır. Aslına bakarsanız her zaman performans sağlanır diyemeyiz ama doğru yerde seçildiğinde performansı arttırıcı özelliği vardır.
Sql Server’da veriler her biri 8 Kb olan page’lerde tutulur. Doğal olarak bir sorgu çekildiğine ilgili veriler ne kadar fazla sayfaya dağılmışsa sorgu sonucu o kadar geç döner. Veriler sıkıştırıldığında daha az sayfa gezileceğinden performans artar. Fakat verinin alakasız bir şekilde irili ufaklı büyüyüp küçülmesi işlemlerinde verilerin düzeltilmesi(uncompress) gerekeceğinden bu tip durumların çok olduğu sistemlerde tercih edilmemelidir.
Sql Server iki tip veri sıkıştırmasını destekler.
Row Level Compression
Page Level Compression
Row Level Compression
Aslına bakarsanız fiziksel bir sıkıştırma söz konusu değildir. Sadece verinin büyüklüğüne göre verinin kapladığı alan “fixed length”den “variable length”e dönüştürülür.
Örneğin siz bir kolona Char(100) veri tipini verdiyseniz bu kolon için veri satırında 100 byte lık alan ayrılır. Halbuki siz “Engin Demiroğ” değerini tutmak isterseniz 13 bytelık alan dolar, gerisi boş kalır.
Bir örnek de int veri türü için verelim. Normalde siz int bir kolonda ne tutarsanız tutun 4 byte harcanır. Çünkü “int” fixed length bir veri türüdür. Halbuki “100” değerini tutmak için 1 byte yeterlidir.
İşte bu gibi gereksiz veri depolama dezavantajlarını row-level compression yaparak ortadan kaldırabilirsiniz.
Row-Level Compression’ın en güzel avantajlarından biri de “null” veriler için diskte ciddi bir yer kaplatmamasıdır.
Row-Level Compression table,index ve partitionlara uygulanabilir.
Row Level Compression’a ihtiyacınız olduğunu anlamak içinçok güzel bir SP’miz var.“sp_estimate_data_compression_savings”. Bu SP ile sıkıştırmadan önceki ve sonraki tahmini örnek büyüklük size gösterilir. Kullanımı aşağıdaki gibidir.
  1. sp_estimate_data_compression_savings 
  2. 'dbo','Orders',NULL,NULL,'ROW'
Bu sorguda “dbo” şemanız, “Orders” objeniz ve “Row” ise sıkıştırma yönteminizdir. Sonuç aşağıdaki gibidir.
Bazı yerlerde ciddi bir sıkıştırmanın olduğunu farketmişsinizdir.
Bir objeye Row-Level Compression uygulamak için aşağıdaki koddan yararlanmanız yeterlidir.
  1. ALTER TABLE dbo.Orders REBUILD
  2. WITH (DATA_COMPRESSION = ROW)
Page-Level Compression
Bu sıkıştırma yöntemi Row-Level’a göre daha performanslıdır. Nedeni Dictionary Temelli Sıkıştırma algoritmasını kullanmasıdır. Bir sayfada bulunan verilerde aynı değerler var ise, değeri tekrarlamaktansa pointer bırakıp değerin adresini tutar.
Aşağıdaki tablo verilerine baktığımızda OrderID kolonunda Clustered Index olduğunu düşünürsek, bu verilerin aynı veri sayfalarında barındığını anlarız. Page-Level Compression kullanıldığında ciddi bir sıkıştırmanın olacağı aşikardır.
SQL Server Data Compression - Row Level Compression, Page Level Compression
Bir önceki örnekte Row-Level Compression yapmıştık. Buna ragmen sıkıştırmanın yine de gerçekleşeceğini “sp_estimate_data_compression_savings” ispatlayalım.
  1. sp_estimate_data_compression_savings 
  2. 'dbo','Orders',NULL,NULL,'PAGE'
SQL Server Data Compression - Row Level Compression, Page Level Compression
Bir objeye Page-Level Compression uygulamak için aşağıdaki koddan yararlanmanız yeterlidir.
  1. ALTER TABLE dbo.Orders REBUILD
  2. WITH (DATA_COMPRESSION = PAGE)

Faydalı olması dileğiyle.
Engin Demiroğ,MCT,engin@yazilimDevi.com

Makalenin Kaynağı: