Veritabanı Bağlantıları:
DSN'li ve DSNLess diye ikiye ayrılır...
DSN: (Data
Sources Name): ASP, ODBC (Open Database Connectivity) özelliği
olan bütün veritabanlarına bağlanabilir ve bunlarla ilgili işlem
yapabilir... Bu bağlantımız, veritabanına bağlanırken ADO
(Microsoft'un Geliştirdiği ActiveX Data Objects) teknolojisini
kullanır.
ActiveX
Data Objects, PWS kurarken otomatik olarak kurulur. Önce isterseniz
bir veritabanını ODBC'ye işlemenin yöntemini görelim. Daha
sonra bu bağlantıyı ASP'de nasıl gerçekleştireceğimizi
inceleyelim.
Win98: Denetim Masasında, alt tarafta
ikonunu gördüğünüz ODBC Veri Kaynakları ikonuna çift tıklayarak,
Win2000: Denetim Masasında, Yönetimsel
Araçlar'da Veri Kaynakları (ODBC) ikonuna iki kere tıklayarak ulaşabilirsiniz...
 
Bu ikonumuza iki kere yıkladığınız zaman yukarıda gördüğünüz
pencere açılır. Bu pencereden SistemDSN sekmesine tıklayın.
Buradan da Ekle (Add) butonuna tıklayın...
Add
butonuna tıkladığınız zaman bu pencereden Veritabanımızın türünü
seçmemiz gerekir. Ben buradan Microsoft Access (*.mdb) ' yi seçiyorum.
Ve Son diyerek bu Dialog Penceresini kapatıyorum. Kapattığımız
zaman, Veritabanımızı yapılandırmamız için başka bir
DialogPenceresi açılır. Şimdi isterseniz bu Dialog Penceresini
inceleyelim...
Seç
butonuna tıklayarak, veritabanımızın yolunu DSN Yapılandırıcımıza
göstermeliyiz... Bendeki imaja bakarsanız, Veritabanının yolu:
D:\Inetpub\wwwrooot\3\Authors.mdb'dir. Data Source Name (DSN) Yan
Veritabanı Kaynağı Adı kısmına verdiğiniz isim önemlidir.
Çünkü bu alanda kullanacağınız DSN Adı, ASP sayfamızda
kullanacağımız DSN Name'dir. Bu yüzden önemlidir. Açıklama
alanına dilediğiniz bir açıklama girebilirsiniz... Gerekli
ayarlamaları yaptıktan sonra Tamam (OK) butonuna tıklarsanız
yandaki gibi bir görüntü oluşur. DSN Yapılandırmamız
artık tamamdır. Artık ASP sayfalarımızda yapacağımız DSN Bağlantılar
için bu DSN ismini kullanabiliriz. Yalnız bu şekilde yapılandırmanın
bir sorunu vardır.
Hemen ne dediğinizi duyar gibi oldum. Arkadaşlar, bir düşünsenize,
Free ASP Server'larından birisinde Veritabanınınız var ve ASP
sayfanızda da kullandığınız veritabanı bağlantısı DSN yani
veritabanınızı ODBC'ye işlemeniz gerekiyor. Ne yapacaksınız?
Server Admin'ine mail atıp benim şurda iki tane veritabanım var.
Aman ne olur sana zahmet şunları ODBC'ye işleyiver mi
diyeceksiniz?
Yo yo. Buna gerek yok. Çünkü artık yeni bir kolaylık daha geliştirildi
ki. Böyle bir kayıta gerek kalmıyor.
DSNLess Bağlantı. Bu bağlantı sayesinde veritabanınızı
ODBC'ye tanıtmanız gerekmiyor
Veritabanınızı. Neyse önce bu bağlantıyı incelemeyi
bitirelim. Sıra ona da gelecek. Bunu kullanmasak ta öğrenelim.
Çünkü benim bu CD'yi hazırlamaktaki amacım, benim bu programları
öğrenirken çektiğim sıkıntılardı. Sizlerin de bu sıkıntıyı
çekmenizi istemiyorum.
Çekilen Türkçe kaynak sıkıntısını bildiğim için böyle bir
çalışma yaptığımı bir kez daha hatırlatayım dedim...
ACCESS
Şimdi açalım Access'ı ve tanımaya ve ilk DB'imizi oluşturalım...
Access'i açtığımız zaman aşağıdaki gibi bir pencere
gelecektir buradan boş (Blank Access Database) bir veritabanı seçeneğini
seçiyoruz ve kaydetmek istediğimiz yere kaydediyoruz.
Bir tavsiye: DB'lerinizi root dizininizde bir DB klasörü oluşturup,
oraya kaydederseniz, inanın bana dağınık olmamanın çok faydasını
göreceksiniz...
Veritabanımızı kaydettikten sonra aşağıda gördüğünüz
pencere gelecektir. Bu pencerede Veritabanımızı inşa etmemiz için
bize bazı kolaylıklar sunulmuştur. Bu seçenekler şunlardır:
Create Table In Design View: Bu seçeneğimiz Field'larımızın
yani alanlarımızın design'ını yapmamızı sağlar. 
Create Table By Using Wizard: Bu seçeneğimizde bir sihirbaz
kullanarak Veritabanımzı oluşturmamızı sağlar.
Create Tabşe By Entering Data: Bu seçeneğimiz de verileri
girebileceğimizalanları açar...
Biz önce Table In Design View seçeneğine iki kere veya sol üstte
gördüğünüz ikonlardan Design butonuna tıklayarak, Table'ımızın
dizaynını tamamlayacağız...
Seçtiğimiz zaman aşağıda gördüğünüz gibi bir
Design Viewer açılacaktır. Bu pencerede alanlarımızın özelliklerini,
metin'mi, checkbox'mı, number'mı veri girişi gerekli mi, değil
mi bir ton özelliğini ayarlayacağız. Şu olayı alışkanlık
haline getirin. Veritabanlarınızın başına id alanı
eklemeyi alışkanlık haline getirin... Size ilerde bir çok
kolaylık sağlayacaktır...
Hemen
girişelim. Field Name alanına, alanımıza vereceğimiz ismi
giriyoruz. Ve hemen yanındaki alana tıklıyoruz. Burada,
imajda gördüğünüz gibi bir PopUp menü açılıyor. Bu
menüden AutoNumber'ı seçiyoruz ki, her kayıt eklediğimizde
ona bir id numarası versin. Bı ID numaralarından daha sonra
çok faydalanacağız.
AutoNumber'ı seçtiğimiz zaman, alt tarafta General Ayarlar
bölümünden, Filed Size'dan Long Integer'i seçiyoruz. Uzun
tamsayılarala artsın diye...
New Values bölümünden Increment'i seçiyoruz. Bu seçenek
id_numaramızın sırayla artarak gitmesini sağlar. Random'ı
seçerseniz rasgele sayı verilir...
Indexed Bölümünden de No'yu seçiyoruz ki, aynı ID numarasını
kopyalamalarda kullanmasın diye. Şimdi geçelim başka
alanlara...
İkinci alanımızın Field Name bölümüne mesela Adi yazalım.
Hemen yanındaki Data Type bölümünden de Text'i seçelim...
Text'i seçtiğimiz zaman General sekmesinde bir ton özxellik
çıkacaktır... biz bunlardan kullanacaklarımızı anlamaya
çalışalım...
Field Size: Bu bölüme gireceğimiz rakam, alanımızın kaç
karakter alacağını belirler. Diyelim ki 50 karakter yazdınız.
50'den sonrasını kabul etmeyecektir...
Required: Bu sekmeden seçeceğiniz değer, sütüna bir değer
girilip girilmemenin zorunlu olup olmayacağını
belirlememizi sağlar.
Aynı şekilde Soyadi, Telefon, Dogum_Tarihi ve Mail alanı açın.
Bu alanlardan da; Telefon alanının Data Type'ını, da Text,
Dogum_Tarihi alanını Date/Time, Mail alanını da Text yapın...
Ve kapatın. Kapatırken Access size bu anahtar tablosunu
kaydedip kaydetmeyeceğinizi sorar. Kaydet'i seçip, Tablonuza
bir isim verin. Çoğunlukla tercih edilen Kaydetme İsmi tbl
ekiyle birliktedir. Örneklemek için ben tblVeri ismini
verdim. Çünkü bu ismi ASP dosyalarımızda kullanacağız...
Kaydettikten sonra, Access size Tablonuzda hiç birincil
anahtar belirlenmediğini söyler. İlk alanı Primary Key yapıp
yapmak istemediğinizi sorar. Evet deyin, ID alanınızın başına
bir anahtar resmi eklenecektir...
Artık tablomuzu yarattığımıza göre, artık örnek bir
veri girebiliriz... Şimdi tblVeri'ye iki kere tıklayarak
veya seçiliyken,
Open butonuna tıklarsak, ver girme sütünlarımız açılır.
Tab tuşuyla sütünlar arasında gezebilirsiniz. Benim veri
girdiğim DB'yi inceleyin...
Artık ASP'ye geçebiliriz... Tabii veritabanımızı ODBC'ye
tanıtmayı unutmayın...
Önce Notepad'imizi veya editörümüzü açarak, önce
ziyarteçimizin verileri gireceği Form alanını oluşturalım...
Daha sonra da bu verileri işleyeceğimiz kodları yazacağız.
Hadi buyrun bakalım...
<HTML>
<P>Lütfen Ziyaretçi Formumuzu Doldurunuz..!</P>
<FORM NAME="VeriFormu"
ACTION="FormIsle.asp" METHOD="POST" >
<TABLE WIDTH="31%" BORDER="0">
<TR>
<TD>Adınız:
</TD>
<TD>
<INPUT TYPE="text" NAME="txtAdi">
</TD>
</TR>
<TR>
<TD>Soyadınız: </TD>
<TD>
<INPUT TYPE="text" NAME="txtSoyadi">
</TD>
</TR>
<TR>
<TD>Telefon: </TD>
<TD>
<INPUT TYPE="text" NAME="txtTelefon">
</TD>
</TR>
<TR>
<TD>D. Tarihiniz: </TD>
<TD>
<INPUT TYPE="text" NAME="txtDogum_Tarihi">
</TD>
</TR>
<TR>
<TD>Mailiniz: </TD>
<TD>
<INPUT TYPE="text" NAME="txtMail">
</TD>
</TR>
<TR>
<TD> </TD>
<TD>
<INPUT TYPE="submit" NAME="cmgGonder"
VALUE="Gönder">
<INPUT TYPE="RESET" NAME="cmdTemizle"
VALUE="Temizle">
</TD>
</TR>
</TABLE>
</FORM>
</HTML>
Bu Formumuzu VeriForm.asp adıyla kaydedelim ve FormIsle.asp
kodumuzu yazalım...
<%@ Language=VBScript Codepage="1254"%>
<%
Dim Baglantimiz
'Önce Request metodumuzla Formdan gelen verileri alıyoruz...
txtAdi=Request.Form("txtAdi")
txtSoyadi=Request.Form("txtSoyadi")
txtTelefon=Request.Form("txtTelefon")
txtDogum_Tarihi=Request.Form("txtDogum_Tarihi")
txtMail=Request.Form("txtMail")
Set Baglantimiz=Server.CreateObject("ADODB.Connection")
Baglantimiz.open "Veri"
SQL="INSERT INTO tblVeri (Adi,Soyadi,Telefon,Dogum_Tarihi,Mail)
values
('"&txtAdi&"','"&txtSoyadi&"','"&txtTelefon&"','"&txtDogum_Tarihi&"','"&txtMail&"')"
Baglantimiz.Execute (SQL)
Baglantimiz.Close
Set Baglantimiz=Nothing
Response.Write "Bilgileriniz
DB'e kaydedildi. İlginize Teşekkür ederiz..."
%>
Bu scriptimizi de FormIsle.asp adıyla kaydedelim. Ve
bilgileri doldurup Gönder butonuna bastığımız zaman,
Response.Write ettiğimiz mesaj ekrana gelecektir ve DB'imize
bilgiler kaydedilecektir.
Database'inizi açar ve kontrol ederseniz, Database'inizde gönderdiğiniz
bilgilerin olduğunu göreceksiniz. Eğer ilk Database çalışmanızsa,
çok sevineceğinize eminim. İnanın ben çok sevinmiştim.
Bu kodumuzda dikkatini çektiyse, MapPath yani *mdb uzantılı
Access dosyamızın yolunu göstermeye uğraşmadık. İşte
bu bize ODBC'nin sağladığı avantajlardan birisidir.
Daha önce ODBC veri kaynaklarına tanıttığımız için,
dosyamızın yolunu göstermeye uğraşmadık. Çünkü Data
Sources Name'de dosyamız kayıtlıydı...
Şimdi aynı çalışmayı DSNLess bir DB Bağlantısıyla
yaparak bu bağlantımızı da öğrenelim.
Fakat bu bağlantımızı yapmadan önce, ODBC Kaynaklarından
tanmlı DB'imizi kaldıralım ki, çalışıp çalışmadığını
anlayabilelim... Hadi buyurun Notepad'e..
Form sayfamızda sadece Action kısmını değiştirelim
ve FormIsle2.asp'ye yönlendirelim. VeriForm2.asp diye
kaydedelim. FormIsle.asp'yi açalım ve değiştireceğimiz
yerleri değiştirelim...
<%@ Language=VBScript Codepage="1254"%>
<%
Dim Baglantimiz, dsn
'Önce Request metodumuzla Formdan gelen verileri
alıyoruz...
txtAdi=Request.Form("txtAdi")
txtSoyadi=Request.Form("txtSoyadi")
txtTelefon=Request.Form("txtTelefon")
txtDogum_Tarihi=Request.Form("txtDogum_Tarihi")
txtMail=Request.Form("txtMail")
Veri="DBQ=" & Server.Mappath("db/Veri.mdb")
& ";Driver={Microsoft Access Driver (*.mdb)};"
Set baglantimiz=Server.Createobject("ADODB.Connection")
baglantimiz.open Veri
SQL="INSERT INTO tblVeri (Adi,Soyadi,Telefon,Dogum_Tarihi,Mail)
values
('"&txtAdi&"','"&txtSoyadi&"','"&txtTelefon&"','"&txtDogum_Tarihi&"','"&txtMail&"')"
Baglantimiz.Execute (SQL)
Baglantimiz.Close
Set Baglantimiz=Nothing
Response.Write "Bilgileriniz
DB'e kaydedildi. İlginize Teşekkür ederiz..."
%>
Gördüğünüz gibi değişen yer sadece bağlantı
yerimiz. Mavi olan kısım... Farkındaysanız değişen
bir şey yok.
Sadece DB'imizin, MapPath'ini yani yolunu gösteriyoruz
ve Provider'ını yani yayımcısını söylüyoruz. Bu
dosyayı da FormIslem2.asp aıyla kaydedip kapatalım.
Ve Browser'ımızda VeriForm2.asp'yi çalıştıralım.
ANA
SAYFA
|