ASP de başlangıç seviyesine giren herkes bazı kodları defalarca tekrarlamak zorunda kalırlar. Daha profesyonel yazılımcıların kodlarına baktıklarında ise hayret ederler ve mutlaka “bu case, sub ne ola ki” diye bir soru cümlesi yönetirler.İşte bu konuda öğreneceklerimiz* Sub Nedir, Nasıl Kullanılır* Case Nedir ? Nasıl Kullanılır* Select Nedir? Nasıl KullanılırSub Nedir? Nasıl Kullanılır?
Sub, asp içerisinde bir alt programcık kümesi olarak adlandırabileceğimiz, biraz fonksiyona benzeyen işlevselliği oldukça fazla olan bir kontrollördür. Sub alt programının ana program içerisinde islenildiği anda kullanılması programcıya esneklik ve kolaylık sağlar.Mesela Bir program yapısı içerisinde sürekli tekrar ettiğiniz bir işlem kümesi var, veya belirli yerlerde farklı sonuçlar almak istediğiniz işlemler kümesi var. İşte burada sub komutu imdadımıza yetişiyor. Bunun için size iki örnek vereceğim. Birincis sabit bir işlemde kullancağımız sub, ikincisi ise değişken sonuçlar döndürebilecek bir yapıda ki sub komutu.<%Sub YeniProgram' Bir sorgu çalıştıralım.Set rs = Conn.Execute("SELECT * FROM tabloadi Where id = 1")Response.write rs("sutunadi")' Yada Bir döngü yapalım ve sonuçları listeletelim.'Set rs = Conn.Execute("SELECT * FROM tabloadi Where id = 1")'Do while not rs.eof' Response.write rs("sutunadi")' rs.MoveNext : Loop' rs.close : set rs = nothingEnd Sub%>
<%Call YeniProgram%>

Görüldüğü üzere sub yazıldığı yerde işlem sonucunu dökmez. Çağırıldığı yere sonucu döker. Ve şimdi sırada da değişken sonuçlar getirebilen sub komutumuz var.<%Sub YeniProgram(TalepEdilen)If TalepEdilen = 1 ThenResponse.write "Talep Edilen 1"' Veya sql sorgusu döndürelim' Set rs = conn.execute("SELECT * FROM tabloadi WHERE id = "& TalepEdilen &"")End IfIf TalepEdilen = 2 ThenResponse.write = "Talep Edilen 2"' Veya sql sorgusu döndürelim' Set rs = conn.execute("SELECT * FROM tabloadi WHERE id = "& TalepEdilen &"")End IfEnd Sub%>
<%Call YeniProgram(1)%> – ve – <%Call YeniProgram(2)%>

Bu arada göndereceğiniz veri daha fazla olabilir. Mesela<%Call YeniProgram(1,5,7)%>
ile 3 farklı id veya data gönderip, karşılığında gelen data kadar döngü yaratıp, split ile verileri alıp işleyebilirsiniz veyaSub kullanımımız hakkında özetle sıkı bir bilgi verdiğimi düşünerekden ikinci konumuz olan case ve üçüncü konumuz olan select e geçiyorum. İki konuya aynı anda geçicem çünkü birbiri ile ilişkili bir kontrol deyimleridir bu.Select ingilizcede seçim anlamına gelir. Case ise durum. Birbiri ile ilişkileri de burada anlaşılıyordur. Durum neyse seçim yapılır.İşte örneğimiz;<%Sayi = 10Select Case SayiCase 1,2,3,4,5Response.write " 1 ile 5 arasında bir seçim yaptınız "Case 6,7,8,9,10Response.write " 6 ile 10 arasında bir seçim yaptınız "Case ElseResponse.write " Seçiminiz 1 le 10 arasında değil "End Select%>
işlemi bize 2.case seçeneğini vericektir. Çünkü 10 rakamı bu seçeneklerin içindedir. Case den sonra yazılan virgül ise verileri ayırmak için kullanılmıştır. Farklı durumlar için defalarca if else ile kontrol sağlamaktan sa select case ile sağlamak çok daha iyi olacaktır çünkü olasılık sayısı arttıkça daha karmaşık bir yapıda if else then yapısı karmaşık bir çözüm olacaktır bizim için.Umarım yeterli bilgiler verebilmişimdir bu konuda.