• Yeni Üyelik
  •     
  • K.Adı yada E-Posta :
  •      
  •      
End of Article
3 TEMMUZ

ASP - Asp ile Veritabanı

Ekleyen: seasparrow 03 Temmuz 2005 Okunma: 1631
Yazdır

Veritabanı ve Sisteme Tanıtımı
Evet, artık yavaş yavaş bir sitenin nasıl kurulacağına, bağlantıların nasıl yapılacağına geçebiliriz.

İlk önce bir veritabanının ne olduğundan bahsedelim isterseniz. Veritabanı; (adı üzerinde) ihtiyacınız olan bilgileri saklayabileceğiniz, ihtiyacınız olduğunda da çağırıp içindeki bilgilerden faydalanabileceğiniz tablolardır. En basit haliyle veritabanının tanımı budur.

Veritabanı işleme programlarını kullanarak (ki biz burada Office 2000 paketine dahil olan ACCESS programını kullanacağız), istediğiniz verileri veritabanına girebilir, onları istediğiniz zaman, istediğiniz şekilde çağırabilirsiniz.

"Eh! Bu kadarını zaten biliyoruz, sadede gel" diyorsanız işte konumuz başlıyor.

Veritabanına birkaç türlü bağlantı yapabilirsiniz. Bunlardan iki tanesi; DSN-li (kısaca DSN) bağlantı ve DSN-siz (DSN-less) bağlantı. Her iki metodu da kullanarak veritabanına bağlanabilirsiniz.

İsterseniz, bu iki metod arasındaki farklara biraz değinelim.

Birincisi (ve bence en önemlisi); DSN bağlantı türünde, hazırlamış olduğunuz Access (veya herhangi bir veritabanı) dosyasının ODBC'ye tanıtılmış olması gerekir. "ODBC de ne?" diyorsanız, o zaman Hakkı Öcal'ın ders notlarına bir göz atın derim.

Bu durumda, veritabanı dosyasını, ODBC'nin anlayacağı şekilde tanıtmalısınız. Bu da sizin, ya sunucu üzerinde yetkiniz olmasını ya da paralı web alanı alıp (Dikkat! Her web alanı sağlayıcısı size bu hakkı vermez), sistem yetkilisine veritabanı dosyasını eklemesini söylemeniz gerektirir.

Bunu en önemli konu olarak görmemdeki tek sebep, bir çok arkadaşımızın kendi sunucularını işletmemeleri veya web alanlarını bedava servislerden almış olmaları. Bu durumda da, veritabanı dosyasının ODBC'ye tanıtılma olanağı kalmıyor. İşte bu durumlarda da DSN-siz bağlantıyı kullanıyoruz. Ne sistem yetkilisine e-mail atmak zorunda kalıyoruz, ne de sitemiz için bir sunucu almak zorunda. Herşey kolaylaşıyor.

Ben sizlere, veritabanına bağlantı kurarken DSN-siz yolu öneririm. Çünkü hem daha hızlı bir bağlantı kurup sunucuyu yavaşlatmıyor, hem de zaten DSN bağlantıyı kuramıyorsunuz (tabi bedavacılara lafım).

Neyse, ama biz iki bağlantı türünü de görelim. Bilgi göz çıkarmaz nasıl olsa...

İlk olarak DSN bağlantıya ufak bir örnek verelim:

Öncelikle veritabanı dosyanızın, ODBC'ye tanıtma işlemini halledelim. Açın Denetim Masası'nı (Control Panel), tıklayın şimdi ODBC ikonuna. Karşınıza 7 sekmesi olan bir pencere çıkacaktır. Sistem DSN (System DSN) yazılı sekmeye geçin ve Ekle (Add) yapın. Yeni Veri Kaynağı Yarat (Create New Data Source) isimli ekran karşınızda artık. Burada tanıtabileceğiniz veritabanı türleri bulunmakta. Biz bütün işlerimizi Access veritabanlarıyla yapacağımız için, listeden Microsoft Access ifadesini seçiyoruz. Siz kullanacağınız veritabanı türüne göre istediğiniz ifadeyi seçin.

Tamam. Şimdi veritabanı dosyamızı sisteme tanıtabiliriz. Şimdi yeni bir ekranla karşı karşıyayız. Bu ekranda Veri Kaynak Adı (Data Source Name) yazan kısma, bağlantı sağlerken kullanmak istediğiniz ismi yazın. Bu isim, veritabanınızla aynı olmak zorunda değil. İleride baktığınızda anlayabileceğiniz ve veritabanın işlevi ile alakalı bir isim verin yeter.

Bir altta Açıklama (Description) yazan bölüme, veritabanınız hakkında ufak bir açıklama koyabilirsiniz (ki her zaman koyun, ileride faydalı olur).

Sıra geldi, veritabanı dosyasını seçmeye. Seç (Select) yazan düğmeye basın ve çıkan ekrandan veritabanı dosyanızı bulun. Tamam deyin ve ana ekrana döndüğünüzde de Tamam deyip bu ekranı kapatın. Artık, bütün uygulamalarınız için veritabanınızı hazır hale getirmiş oldunuz. İleride veritabanını çağırırken sadece Veri Kaynak Adı (Data Source Name) kısmına yazdığınız ismiyle çağıracağız.

Eh! İlk aşamayı hallettik, veritabanını sisteme tanıttık. Şimdi sıra geldi ASP sayfasını hazırlamaya ve veritabanını çağırmaya. Buyrun efendim ikinci bölüme...
DSN Bağlantı
İlk bölümde veritabanını sisteme tanıtmayı gördük. Sıra geldi veritabanını çağırmaya yarayan kodları öğrenmeye.

Açalım NotePad'imizi (siz yoksa başka bir program mı kullanıyorsunuz?). Ve başlayalım yazmaya;
<%

Set connBaglanti = Server.CreateObject("ADODB.Connection")

Bu, standart bir ifadedir ve sunucu tarafında yeni bir nesne oluşturur. Bu nesneye ise connBaglanti adı verilir. Siz connBaglanti yerine istediğiniz ifadeyi yazabilirsiniz. Ancak değişkenin (connBaglanti) bağlantı için kullanıldığını anlamak için başına, İngilizce'de Connection (Bağlantı)'dan kısaltılan conn ekini getiriyoruz. Siz isterseniz bag ekini getirin. Ya da istemem diyorsanız, atın kafanıza göre birşeyler. Yalnız dikkat edin; Türkçe harf kullanmak (ü, ğ, ş, ç, ö, Ü, Ğ, İ, Ş, Ç, Ö) yok, ona göre...

connBaglanti.Open "Veri_adı"

%>

Biraz önce tanımladığımız bağlantı nesnesini .Open metodu ile açıyoruz. Burada Veri_adi olarak tanımlanan kısım, az önce ODBC ayarlarında, Veri Kaynak Adı (Data Source Name) kısmına yazdığınız isim olacaktır. Sakın veritabanı dosyanızın ismini yazmak gafletine düşmeyin. Eğer veritabanı dosyanızı sisteme Ogrenciler olarak tanıttıysanız ve bu dosyanızın HardDisk'teki ismi AccessDosyasi01.mdb ise , Veri_adi yerine AccessDosyasi01.mdb yazmayın...

İşte bu kadar. Veritabanı ile olan bağlantımız artık hazır. Bundan sonrası, bu dosya ile neler yapacağımıza kalıyor. Bunlar daha sonraki derslere...
DSN-less Bağlantı
İlk iki bölümde, DSN bağlantısıyla ilgili olarak, veritabanı dosyasının sisteme tanıtılması ve bağlantının kurulması konularını işledik. Şimdi sırada DSN-siz bağlantı var. E! Daha fazla beklemeyelim o zaman...

Bu bağlantı türünde, veritabanı dosyamızı sisteme tanıtmak gibi sorunlarla(!) uğraşmayacağız. Boşverin, sistem dosyamızı tanımayıversin. İşimizi yapsın, yeter bize.

<%

set connBaglanti = Server.CreateObject("ADODB.Connection")






Burada da yine connBaglanti değişkenini kullanarak, sunucuda yeni bir bağlantı nesnesi oluşturuyoruz. Ayrıntılı açıklaması 2. bölümdeydi...
connBaglanti.Open ("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db/veritabanı_dosyasının_adı.mdb"))






connBaglanti adındaki bağlantı nesnesini .Open metodu ile açtık. Dosyayı açmak için kullandığımız sürücü Access sürücüsü. Daha sonra da veritabanınızın, sunucudaki göreceli adresini yazıyoruz. Burada, sunucunun kök dizininde db klasörü içerisindeki veritabanı_dosyasının_adı.mdb dosyasını kullanıyoruz. Server.MapPath, sunucunun kök dizinini yakalar ve ondan sonra gelen ifadeler kök dizini altındaki dizin ve dosyaları gösterir. Yani, sizin evdeki kişisel sunucunuz c:\inetpub\ dizinine kuruluysa, otomatikman dosyanızın adresi c:\inetpub\wwwroot\db\veritabanı_dosyasının_adı.mdb oluyor.
SQL = "SELECT * FROM Tablo_İsmi"






Burada, veritabanınızın içerisindeki Tablo_İsmi isimli tablodan bütün verileri " * " alıyoruz. Tabi isterseniz sadece istediğiniz alanlardaki verileri de alabilirsiniz. Bunun için ilgili tablodaki Alan İsmi'ni yazmanız gerekiyor. "Ve tüm bu verileri SQL değişkenine atıyoruz" diye düşünüyorsanız, yanılıyorsunuz. Biz sadece, ileride alacağımız tablonun sorgu cümlesini SQL değişkenine atıyoruz. "Bu tablodaki verileri nasıl okuyacağız" diyorsanız, işte aşağıya bir bakın;
set rsKayit = connBaglanti.Execute (SQL)

%>

Burada, rsKayit değişkeni, bir önceki adımda belirlediğimiz SQL değişkenindeki sorgu cümlesini çalıştırıp, tablodaki verileri seçiyor. Buradaki rs öneki ise, yine İngilizce'de RecordSet (KayitDizisi) kelimesinin kısaltılmış halidir.