ASP Veritabanı İşlemleri

ASP, PHP, PERL, CGI, HTML gibi web programcılık dilleri hakkında yardım, tartışma ve paylaşımlar.
Cevapla
Kullanıcı avatarı
UnreaL
Fast Friend
Fast Friend
Mesajlar: 207
Kayıt: 24-12-2005 17:26

ASP Veritabanı İşlemleri

Mesaj gönderen UnreaL »

Veritabanı muhabbetimiz tam gaz devam ediyor. Bu yazıda bir çok veritabanı operasyonunu birlikte göreceğiz. Kayıt ekleme, silme, güncelleme gibi. Kullanacağımız veritabanı dosyası burada(8,15 kb). Bu dosya C:\inetpub\wwwroot\db konumunda olsun. Sıra geldi script dosyalarımıza.

KAYITLAR.ASP

Öncelikle kayıtları listeleyeceğimiz bir arabirim inşa ettik. kayitlar.asp ye göz atalım. Bu ve diğer ASP dosyaları C:\inetpub\wwwroot\ konumunda olsun.
Kod1. kayitlar.asp

<%
Veri_yolu = Server.MapPath("db/kisiler.mdb")
Bcumle = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Veri_yolu
Set bag = Server.Createobject("ADODB.Connection")
bag.Open (Bcumle)
Set kset = bag.execute("SELECT * FROM kisiler")
%>
<% i=1 %>
<p><a href="kayit_yeni.asp">Yeni Kayıt</a></p>
<table border=1>
<tr>
<th>#</th>
<th>Ad</th>
<th colspan=2>Eylemler</th>
</tr>
<% Do While Not kset.eof %>
<tr><td><%= i %></td>
<td><%= kset("ad") %></td>
<td><a href="kayit_duzenle.asp?id=<%= kset("id") %>">düzenle</a></td>
<td><a href="kayit_sil.asp?id=<%= kset("id") %>">sil</a></td></tr>
<% kset.movenext %>
<% i = i + 1 %>
<% Loop %>
</table>
<%
kset.Close
Set kset = Nothing
bag.Close
Set bag = Nothing
%>


Bu script, basit bir şekilde /db alt dizinindeki kisiler.mdb ile bağlantı kuruyor. kisiler tablosundan aldığı tüm kayıtların "ad" alanındaki değerlerini yazdırıyor. Ve de her bir kayıt için düzenleme ve silme linkleri oluşturuyor. Linkler oluşturulurken sorgu stringi içinde eylemi gerçekleştirecek script dosyasına "id" anahtarıyla kaydın "id" alanındaki değeri gönderiliyor. Tabi bunlar kayıtseti sonunda duracak bir döngü içerisinde yapılıyor. Veriler tablo hücrelerine döngüyle döküldüğüne de dikkat ediniz.

KAYIT_DUZENLE.ASP ve KAYIT_GUNCELLE.ASP

Kayıtların listelendiği kayitlar.asp de her kaydın yanında bir düzenle bağlantısı var. Bu bağlantı ile duzenle.asp dosyasına işaret ediliyor. Bir de sorgu cümlesi konuluyor yanına: "duzenle.asp?id=XX" Buradaki XX yerine geçerli kaydın id alanındaki değeri yazılıyor. Şimdi kayıt_duzenle.asp ye bakalım.
Kod2. kayit_duzenle.asp

<%
id = Request.Querystring("id")
If Not Isnumeric(id) Or Len(id)=0 Then
mesaj "Yanlış Sorgu Cümlesi"
End If
'-----------------------------------------------------------------------------------
Veri_yolu = Server.MapPath("db/kisiler.mdb")
Bcumle = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Veri_yolu
Set bag = Server.Createobject("ADODB.Connection")
bag.Open (Bcumle)
Set kset = bag.execute("SELECT * FROM kisiler where id =" & id)
If kset.eof Then
mesaj "Olmayan Kayıt İstendi"
End If
%>


<a href="kayitlar.asp">Kayıtlar</a>
<form method=post action="kayit_guncelle.asp">
<table border=1>
<tr>
<td>Ad</td>
<td><input type="text" name="ad" value="<%= kset("ad") %>"></td>
</tr>
<tr>
<td>Teleon</td>
<td><input type="text" name="telefon" value="<%= kset("telefon") %>"></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="email" value="<%= kset("email") %>"></td>
</tr>
<tr>
<td>ICQ</td>
<td><input type="text" name="icq" value="<%= kset("icq") %>"></td>
</tr>
<tr>
<td>Adres</td>
<td><input type="text" name="adres" value="<%= kset("adres") %>"></td>
</tr>
<tr>
<td>Doğum Günü</td>
<td><input type="text" name="dgunu" value="<%= kset("dogum_gunu") %>"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="güncelle"></td></tr>
</table>
<input type="hidden" name="id" value="<%= kset("id") %>">
</form>



<%
kset.Close
Set kset = Nothing
bag.Close
Set bag = Nothing
%>
<%'--------------------------%>
<% Sub mesaj(msg) %>
<p><%= msg %></p>
<% response.end %>
<% End Sub %>
<%'--------------------------%>
Aslında bu scriptin de öncekinden pek farkı yok. sadece sorgu cümlesinden "id" anahtarındaki değeri alıyor. Ve bu id değerini kullanarak tablodan tek kayıt seçiyor. ("SELECT * FROM kisiler where id =" & id). Seçtiği kayda ait değerleri ise form input alanlarına döküyor. Formun action özelliğine ise kayit_guncelle.asp yazılmış. Güncelleme işini bu dosyaya havale ediyoruz.
Kod3. kayit_guncelle.asp
<%
ad = Request.Form("ad")
id = Request.Form("id")
telefon = Request.Form("telefon")
dgunu = Request.Form("dgunu")
icq = Request.Form("icq")
email = Request.Form("email")
adres= Request.Form("adres")
'-----------------------------------------------------------------------------------
Veri_yolu = Server.MapPath("db/kisiler.mdb")
Bcumle = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Veri_yolu
Set bag = Server.Createobject("ADODB.Connection")
bag.Open (Bcumle)
Set kset = Server.Createobject("ADODB.Recordset")
sql = "SELECT * FROM kisiler WHERE id = " & id
kset.open sql, bag, 1, 3
kset("ad") = ad
kset("telefon") = telefon
kset("email") = email
kset("adres") = adres
kset("icq") = icq
kset("dogum_gunu") = dgunu
kset.update
kset.Close
Set kset = Nothing
bag.Close
Set bag = Nothing
Response.Write "<p>Kayıt Yapıldı.. Başka bir arzunuz? "
Response.Write "<p><a href=""kayitlar.asp"">Kayıtlar</a>"
%>



KAYIT_YENI.ASP

kayitlar.asp de Yeni Kayıt linkinde işaret edilen kayit_yeni.asp... Yaptığı iş şu. Veritabanına bağlanıp ilgili tablodan oluşturduğu kayıt seti içine yeni bir kayıt ekliyor. Kayıtsetini güncelliyor, "id" alanındaki değeri bir değişkende saklıyor. nesneleri kapatıyor. Ve de kayit_duzenle.asp dosyasına "id" anahtarıyla yeni eklenen kaydın "id" alanındaki değeri gönderiyor. Yani bu sayfa sadece işlem yapıyor. Kullanıcıya gözükmeden işlemi tamamlayıp düzenleme sayfasına yöneliyor.
Kod4. kayit_yeni.asp

<%
response.buffer=true
Veri_yolu = Server.MapPath("db/kisiler.mdb")
Bcumle = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Veri_yolu
Set bag = Server.Createobject("ADODB.Connection")
bag.Open (Bcumle)
Set kset = Server.Createobject("ADODB.Recordset")
sql = "SELECT * FROM kisiler"
kset.open sql, bag, 1, 3
kset.addnew
kset.update
id = kset("id")
kset.Close
Set kset = Nothing
bag.Close
Set bag = Nothing
Response.Redirect "kayit_duzenle.asp?id=" & id
%>


KAYIT_SIL.ASP

Sorgu cümlesindeki "id" anahtarından alınan id değeri kullanılarak şu SQL ifadesi oluşturuluyor.
DELETE FROM kisiler WHERE id = " & id . Ve bu ifade bağlantı tarafından yürütülüyor (execute). Sonuçta id si alınan kayıt tablodan silinmiş oluyor. Kullanıcı da geldiği sayafaya yönleniyor.
Kod5. kayit_sil.asp

<%
response.buffer = True
id = Request.Querystring("id")
'-----------------------------------------------------------------------------------
Veri_yolu = Server.MapPath("db/kisiler.mdb")
Bcumle = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Veri_yolu
Set bag = Server.Createobject("ADODB.Connection")
bag.Open (Bcumle)
sql = "DELETE FROM kisiler WHERE id = " & id
Set kset = bag.execute(sql)
Set kset = Nothing
bag.Close
Set bag = Nothing
Response.Redirect (Request.ServerVariables("HTTP_REFERER"))
%>

Cevapla
  • Benzer Konular
    Cevaplar
    Görüntüleme
    Son mesaj

Kimler çevrimiçi

Bu forumu görüntüleyen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 3 misafir