Özellikle microsoftun asp ile .net çıkalıdan beri ilgilenmemesi bir çok asp kodlayıcısınının kendisini yalnız hissetmesine sebebiyet vermiştir. (kendimden biliyorum daa:) ) Ama herşeye rağmen biz sadık asp coder’lar olarak bu işin peşini bırakmıyoruz ve php’mi döver asp’mi dalaşını bir tarafa bırakıp tam bir beyefendi gibi msSQL, mySQL ve access (hatta oracle) ile güçlendirme şansını bulduğumuz projelerimize kısıtlı da olsa nesne odaklı programlama teknikleriyle daha da kullanışlı bir imaj verebiliyoruz. Bu makalede mySQL veritabanı üzerinde işlerliği olacak bir kod örneği sunarak üzerinde bir iki kelam etmek istiyorum..Class VeritabaniPublic SQL,RS,TOTALPublic Function EXE(e)SQL = replace(SQL,”Select”,”Select SQL_CALC_FOUND_ROWS”)Set RS = conn.Execute(SQL)if inSTR(e,”toplam”) > 0 then TOT()End FunctionPrivate Function TOTSet e = conn.Execute(“SELECT FOUND_ROWS() as x”)TOTAL = CINT(e(“x”))Set e = nothingEnd FunctionPublic Function CLSSet RS = nothingEnd FunctionEnd Class
Set kayitCek = new VeritabaniWith kayitCek.SQL = “Select * from tablo”.EXE(“toplam”)response.write .RS(“FieldName”)response.write .TOTAL.CLSEnd WithSet kayitCek = nothing
Kullanım şeklini en alttaki blokta verdim. Özellikle kodun mySQL veritabanında çalışabileceğini tekrar belirtmeliyim. “FOUND_ROWS()” fonksiyonunu görenler anlamışlardır zaten..Bir ön yargıyı daha delmek niyetindeyim. Özellikle asp’de giriş seviye script yazan arkadaşlar sağdan soldan en çok ado nesneleriyle çalışmayı (ve doğaldır access kullanmayı) öğreniyorlar. Bu bağlamda örneğin .recordcount metodunu neredeyse her yerde çekinmeden kullanabiliyorlar. (projeleri ciddiye bindiğinde iis’in nasıl olupta kasılmaya başladığını merak ediyorlar) mySQL’e geçtiklerinde ise bu kayıt sayısını elde edebilmenin konforu arıyorlar. Ama biraz araştırılınca mySQL’in de bu tür kayıt sayısı döndürme işlevi bulunduğu anlaşılıyor.. Sınıfta bu özelliğide kullandık. EXE metodu içine parametre olarak “toplam” yazar isek sql sorgumuz replace fonksiyonu sayesinde etkilenen kayıt sayısınıda hesaplayacak şekilde yeniden parse ediliyor (parse demek daha zevkli napıyım:D) ve TOTAL isimli class değişkenine atanıyor. Lazım olduğunda bu değişkene erişip kaç kayıt etkilenmiş, integer olarak alabiliyoruz.Son olarak bu obje değişkenlerimizi kapatabilmemiz gerekiyor ki, bu işi de .CLS diyerek kendi sistemimizle yok ediyoruz (ama aslında yine nothing işlemiyle yok ediliyor, biz bunu cilalı bir hale getirmiş olduk Clear Screen (CLR) ile..) en sonunda veritabani nesnesi olan kayitCek’i de kapatmaz isek olmaz. Bunuda nothing ile öldürdükten sonra işlem tamamlanmış oluyor.Yani kendi ado’nuzu oluşturmanız aslında bu kadar basit (yada adonun mucizeviyatı o kadar da kompleks değil) Sınıfın gelişimi ise tamamen becerinize ve ihtiyaçlarınıza bağlı..(Lazaronnie)’den Saygılar..