06 Eyl 2008 SQL Server COALESCE Fonksiyonu Kategori: Yazılım Etiketler: SQL Server 2005SQL Server 2 Yorum Database`den veri çekerken null degerlerin geri dönmesi her zaman canımı sıkmıstır. Access`de iif, Sql Server`da case ile degerleri replace ettirsekte sorunu çözsekde aslında bu isi yapabilecek daha kolay bir fonksiyon bulunmaktadır. Bu fonksiyonun adı COALESCE` dır. Bu fonksiyon veri çekerken field içersindeki null degeri istedigimiz deger ile replace etmemizi saglar. Kullanımı asagıdaki gibidir; KulanımıSelect top 5FirstName, LastName,COALESCE(MiddleName,`-`) as MiddleName -- Eger MiddleName`deki deger NULL ise yerine "-" yazacak.From Person.ContactSonuçGustavo Achong -Catherine Abel R.Kim Abercrombie -Humberto Acevedo -Pilar Ackerman -(5 row(s) affected)
04 Mar 2007 VISTA'da Visual Studio ve SQL Server 2005 Kategori: Yazılım Etiketler: SQL ServerSQL Server 2005Windows 12 Yorum Bu haftasonu bilgisayarlarıma(ev ve sirket) VISTA kurdum. Özellikle SQL Server'i kurmak için bayagı bir ugrastım. Bu süreçte yasadıgım tecrübeleri sizinle de paylasmak istedim. Visual Studio: Ilk olarak Frontpage Extension'ı kurmalıyız. Yoksa hata veriyor :) Daha sonra Visual Studio 2005 SP1 yüklememiz gerekiyor. SQL Server 2005: VISTA normal de SQL Serveri 2005'i desteklemiyor ama bunu çözmek için; Administrator Hesabını aktif edip onunla login olalım; UAC(User Access Contorl')ü kapatalım. Run komutuna MSConfig yazalım ve Disable UAC seçip Launch'a tıklayalım. SQL Service Pack 2 Yükleyelim Tüm bunları yaptıktan sonra sorunsuz olarak Visual Studio 2005 ve SQL Server 2005'i çalıstırabiliriz.
04 Mar 2007 ASP.NET İle Stored Procedure Kullanımı – 1 Kategori: ASP.NET Etiketler: ASP.NETSQL Server 2005SQL Server 0 Yorum Merhaba arkadaşlar, bu makalemizde ASP.NET İle SQL Server üzerinde Stored Procedure oluşturup, oluşturduğumuz stored procedurü ASP.NET Projemizde kullanacağız…Stored Procedure Nedir?Ilk olarak kısaca Stored Procedürden bahsedeyim; Stored Procedures SQL Server üzerinde tutulan T-SQL ifadeleridir. Belli bir görevi yerine getirebilmek amacıyla yapılandırılırlar. SQL Server üzerinde derlenirler. Belirledigimiz sartlara göre, program içinden çagrılarak kullanılırlar. T-SQL deyimleriyle yazılan Store Procedures sadece ilk kez çalıstırıldıklarında derlenirler. Daha sonraki çalıstırma islemlerinde derlenmezler. Bu sayede çalısmalarımızda hız kazanmıs oluruz. Stored Procedürlerin bir baska artısı da çok güvenlidir. ÖrnekCreate Proc LastTenPerson as select top 10 ContactID, FirstName, LastName from Person.Contact order by ContactID desc Bu Stored procedurü çalıstıralım; exec LastTenPerson > bize geri dönen sonuç; Bize son 10 kaydı geri döndürdü. Simdi isterseniz bu olusturdugumuz Stored Procedurü, ASP.NET Projesinde kullanalım; lk olarak bir web projesi açalım; Projemizi olusturduktan sonra sayfamıza bir adet grid ekleyelim; Evet simdi kaydımızı görüntüleyecek olan kodları yazalım ilk olarak System.Data ve System.Data.SqlClient namespacelerini sayfamıza ekleyelim. using System.Data; using System.Data.SqlClient; Daha sonra sayfamızda kullanacagımız degiskenleri tanımlayalım; SqlConnection Cnn; SqlCommand Cmd; SqlDataAdapter Da; DataSet Ds; Simdi Kaydımızı listeleyecek olan voidi yazalım(Isterseniz function olarak yada class içerisinde kullanabilirsiniz). private void GetLastTenPerson() { Cnn = new SqlConnection("Data Source=localhost; Initial Catalog=AdventureWorks; trusted_connection=yes");//DB Baglantısı Cmd = new SqlCommand(); Cmd.CommandType = CommandType.StoredProcedure;//Command Tipi Cmd.CommandText = "LastTenPerson";//SP Adı Cmd.Connection = Cnn;//Commandin kullanacagı Connection if (Cnn.State == ConnectionState.Closed) Cnn.Open(); Da = new SqlDataAdapter(Cmd); Ds = new DataSet(); Da.Fill(Ds,"table"); GridView1.DataSource = Ds.Tables[0]; GridView1.DataBind(); } En son olarak bunu Formun Load'da çagıralım; protected void Page_Load(object sender, EventArgs e) { GetLastTenPerson(); } Simdi Projemizi çalıstıralım; Son 10 kaydımızı basarı ile listeledik; Simdi Stored Proceduremizi biraz daha genisletelim ve Bir kriter ekleyelim. Örnegin Firstname'ni biz dısarıdan girelim ve girdigimiz Firstname'e göre kayıtlar listelensin. Bunun için Stored Procedure içerisine dısarıdan bir parametre almalıyız. Biz buna input parametre diyoruz. Stored Proceduremizin düzenlenmis hali; Alter Proc LastTenPerson //SP'mizi Alter ettik @FirstName varchar(20)//Input Parameter as select top 10 ContactID, FirstName, LastName from Person.Contact where FirstName=@FirstName order by ContactID desc exec LastTenPerson 'Crystal' Sonucu görelim; Firstname'i sadece Crystal olanlar geldi; Simdi bunu ASP.NET tarafında da yapalım; Bunun için projemize bir adet buton ve bir adet textbox ekleyelim. Sayfamızdaki kodları Command out yapalım yada silelim çünkü SP degistigi için çalıstıgında hata verecektir. Button1'e tıklayalım; protected void Button1_Click(object sender, EventArgs e) { Cnn = new SqlConnection("Data Source=localhost; Initial Catalog=AdventureWorks; trusted_connection=yes"); Cmd = new SqlCommand(); Cmd.CommandType = CommandType.StoredProcedure; Cmd.CommandText = "LastTenPerson"; Cmd.Parameters.AddWithValue("@Firstname", TextBox1.Text);// Dısarıdan Store Procedure parametre ekliyoruz.. Cmd.Connection = Cnn; if (Cnn.State == ConnectionState.Closed) Cnn.Open(); Da = new SqlDataAdapter(Cmd); Ds = new DataSet(); Da.Fill(Ds, "table"); GridView1.DataSource = Ds.Tables[0]; GridView1.DataBind(); } Simdi projemizi tekrar çalıstıralım ve sonucu görelim. Yukarıda da görüldügü gibi Firstname'i sadece 'Crystal' olan kayıtlar listelenmektedir. Bu makalenin de sonuna geldik, bir sonraki makale de Insert, Update ve Delete islemlerini inceleyecegiz. Baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Sem GÖKSU MCP | MCAD.NET | MCTS Örnek Kodlar için mail adresimi kullanabilirsiniz semgoksu@semgoksu.com Kaynaklar http://msdn.com
17 Ara 2006 *.BAT Dosyası İle SQL Server Üzerinde Veritabanı Oluşturma Kategori: SQL Server Etiketler: SQL ServerSQL Server 2005SQL Server 2008 2 Yorum Merhaba arkadaşlar bu makalemizde SQL Server üzerinde bat dosyası aracılığı ile veritabanı oluşturma işleminin nasıl yapıldığına bakacağız.Kendi kisisel bilgisayarımızda ya da firma bilgisayarları üzerinde tasarladıgımız veritabanını müsteri ya da talep edilen noktaya tasırken bir takım sıkıntılar yasarız. Çünkü veritabanını tasırken olusturmus oldugumuz index yapılarını, store procedure, trigger vb. gibi bilgileri kaybedebiliriz. Eger ki birden çok noktaya kurulum yapılması gerekiyorsa bu sıkıntılar daha da artar. Tek nokta için olusturulan veritabanının backup'ını alarak sorunu biraz olsun çözülebilir ama eger birden çok noktaya kurulum yapılıyorsa bu da çözüm olmaz. Çünkü kullanıcı program CD'ni takıp ve setup dosyasını çalıstırıp bir an önce programını kurup kullanmak ister. Bu sıkıntıları gidermek için olusturdugumuz veritabanının script dosyalarını çalıstıracak bir Bat dosyası hazırlayabiliriz. Bu BAT dosyasını da hazırlamıs oldugumuz uygulamada ön-kurulum olarak kurdurarak tasarladıgımız veritabanını istedigimiz noktaya kolayca tasıyabiliriz. Konu ile ilgili örnek bir uygulama yapalım. QueryAnalyser Üzerinde bir DataBase ve bu database'e baglı tablolar olusturalım. Daha sonra script dosyalarını çalıstıracak BAT dosyasını hazırlayalım. Örnek Bunun için ilk olarak Query Analyser ya da SQL SMO açalım. Örnek bir veritabanı olusturalım ve olusturacagımız bu scripti kaydedelim. (CreateDatabase.sql ) Simdi bu tabloya ait Tablolarımızı olusturalım ve yine kaydelim.(CreateTable.sql ) Script Dosyalarını olusturdugumuz dosyanın içine gelip uzantısı BAT olan bir dosya yaratalım. Olusturdugumuz bu doya üzerinde sag tıklayarak düzenle diyerek Notepad da açalım. Içerisine asagıdaki kodları yazalım. echo off cls // Ekranı Temizle type start.txt // Baslangıç için Ekrana verilecek Mesaj pause > Kurulum.log // Kullanıcının devam etmesi için beklet osql -E -S%1 -n -iCreateDatabase.sql>>Kurulum.log //Scripti çalıstırır ve sonucunu kurulum.log dosyasına yazar osql -E -S%1 -n -iCreateTable.sql>>Kurulum.log //Scripti çalıstırır ve sonucunu kurulum.log dosyasına yazar cls // Ekranı Temizle type End.txt // Sonuç için Ekrana verilecek Mesaj pause >> Kurulum.log // Kullanıcının devam etmesi için beklet Del Kurulum.log // Hata vermemisse log dosyasını sil Yukarıda bahsettigimiz start.txt yani baslangıç mesajı için Bat dosyasını olusturdugumuz yerde Start.txt isimli bir dosya yaratalım ve içerisine Baslangıç için bir mesaj yazalım. Benim örnegim asagıdadır. ****** ********************************************************* ***** Kurulumu Baslatmak icin bir tusa basiniz! ***** ********************************************************* **************** Sem Goksu ************************** ********************************************************* ********************************************************* ****** Yine script dosyamız görevini tamamladıktan sonra kullanıcıyı bilgilendirmek için bat dosyasını olusturdugumuz yere end.txt adında bir dosya olusturalım ve sonuç için bir mesaj yazalım. Benim örnegim asagıdadır. ****** ********************************************************* ***** Kurulum Tamamlandi, Tebrikler! ***** ********************************************************* ****** Bunları yaptıktan sonra Kur.Bat dosyamızı çalıstıralım ve dosyamızı test edelim. Dedigini yapalım ve bir tusa basalım :=) Veritabanımızın olusturuldugunu söylüyor. Birde SQL Serveri açalım ve oradan kontrol edelim. Gördügümüz gibi Veritabanımız olusturulmus. Eger ki bu yaptıklarımızı bir programa ön kurulum olarak kurduracaksak Bat dosyamızı asagıdaki gibi degistirebiliriz. echo off cls osql -E -S%1 -n -iCreateDatabase.sql>>Kurulum.log //Scripti çalıstırır ve sonucunu kurulum.log dosyasına yazar osql -E -S%1 -n -iCreateTable.sql>>Kurulum.log //Scripti çalıstırır ve sonucunu kurulum.log dosyasına yazar cls Bu sekil de kurulum asamasında hiçbir uyarı vermez ve veritabanı kurulur. Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Sem GÖKSU MCP | MCAD.NET | MCTS Örnek Kodlar için mail adresimi kullanabilirsiniz askisem@hotmail.com Kaynaklar http://msdn.com