Asp’de Access Veritabanına Bağlanma, Kayıt Ekleme, Kayıt Silme

Asp’de çok büyük projeler yapmadıkça access veritabanı kullanmamızda bir sakınca yoktur. Bir önceki yazımda en çok kullanılan iki veritabanı olan Mysql ve Microsoft Access arasındaki farkları yazmıştım. Sonuçta belirttiğim gibi yazılarımın çoğunun Standart veritabanı Access olacaktır. Bu yazımda Access veritabanına nasıl bağlandığını ve nasıl kullanacağımızı göstereceğim.

  • ODBC İle Bağlantı

<%

Dim veritabaniDizin

Dim veritabani

veritabanidizin=”test.mdb

Set veritabani = Server.CreateObject(“ADODB.Connection“)

veritabani.Open “DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=” & Server.MapPath(veritabanidizin)

%>

  • OLEDB İle Bağlantı

<% Dim veritabaniDizin

Dim veritabani veritabanidizin=”test.mdb

Set veritabani = Server.CreateObject(“ADODB.Connection“)

veritabani.open “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & Server.MapPath(veritabanidizin) & “;User Id=;Password=;

%>

  • KAYIT EKLEME NASIL YAPILIR ?

<%

Dim veritabaniDizin,veritabani

Dim rec,RSQL

veritabanidizin=”test.mdb

Set

veritabani = Server.CreateObject(“ADODB.Connection“)

veritabani.open “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & Server.MapPath(veritabanidizin) & “;User Id=;Password=;

Set rec = Server.CreateObjecT(“ADODB.RecordSet“)

rSQL = “test

rec.open rSQL,veritabani,3,3

rec.addnew

rec(“ad“)=”Çağdaş

rec(“soyad“)=”Karademir

rec(“no”)=207

rec(“tarih”)=Now()

rec.update

rec.close

Set rec=Nothing

veritabani.close

Set veritabani=Nothing

%>

Veritabanımıza bağlantı kurduktan sonra;

  1. Tablo ( kayıt setini ) nesnemizi tanımlıyoruz. ( Set rec = Server.CreateObjecT(“ADODB.RecordSet“) )
  2. RSQL değişkeni sql cümlesi yazmak için kullanabiliriz. Burada kayıt eklemek için nesnemizin .addnew komutunu kullandığımızdan sql yazmaya gerek yoktur. RSQL değişkenimize işlem yapmak istediğimiz tablonun adını yazıyoruz. ( rSQL = “test )
  3. Bağlantı nesnemizi ( veritabani ), tablomuzla ( kayıt seti (recordset) ) ilişkilendirmemiz gerekiyor. rec.open komutunu kullanarak kayıt setimizi, RSQL değişkenindeki sql cümlesi sorgusu yaparak, veritabani bağlantısıyla hem okunur hem de yazılabilir bir şekilde açıyoruz. ( rec.open rSQL,veritabani,3,3 )
  4. Yeni kayıt ekleyeceğimiz için veritabanımızda geçici bir satır oluşturmamız lazım. Bunu da rec.addnew komutumuz ile yapıyoruz. Bu şekilde veritabanında geçici olarak işlem yapmamızı sağlayacak gizli bir satır oluşuyor.
  5. Şu ana kadar veritabanımızın bağlantısını yaptık, işlem yapacağımız tablomuzu tanıttık, geçici bir satır oluşturduk. Bundan sonra tablomuzun içindeki sütunlara veri girebiliriz. Bunuda yaparken yine kayıt setimizi ( recordset ) kullanacağız. rec olarak tanımladığımız kayıt setimizin içine işlem yapmak istediğimiz sütunun adını yazıyoruz ve veriyi atıyoruz. ( rec(“ad“)=”Çağdaş ) ( rec(“soyad“)=”Karademir ) ( rec(“no”)=207 ) ( rec(“tarih”)=Now() )
  6. Atama işlemlerimizi yaptıktan sonra geçici satırımızı, gerçek satıra dönüştürmemiz lazım. Eğer dönüştürmezsek sayfa kapandığı an geçici satır kayıt edilmediğinden silinecektir. Bu olayı rec.update komutu ile yapıyoruz. Böylelikle işlemi kaydetmiş oluyoruz.
  7. Kayıt setimizi rec.close kapatıyoruz.
  8. Kayıt setimizi Set rec=Nothing komutu ile işlem yapılmasını engelliyoruz. ( Nedeni : O sayfada eğer birden fazla aynı isimde kayıt seti varsa işlemlerin karışmaması için yapabiliriz )
  9. veritabani.close veritabanı ile bağlantıyı kapatıyoruz.
  10. Set veritabani=Nothing komutu ile o sayfada bir daha varitabani bağlantısının kullanılmasını yasaklıyoruz. ( Nedeni : Access veritabanına ne kadar çok kullanıcı girerse o kadar fazla performans kayıbı olur. Eğer veritabanı bağlantımızı işlem yaptıktan sonra kapatırsak, veritabanında aynı anda işlem yapma hızı, diğer kullanıcılar için daha hızlı olacaktır. )
  • KAYIT SİLME NASIL YAPILIR ?

<%

Dim veritabaniDizin,veritabani

Dim rec,RSQL

veritabanidizin=”test.mdb

Set

veritabani = Server.CreateObject(“ADODB.Connection“)

veritabani.open “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & Server.MapPath(veritabanidizin) & “;User Id=;Password=;

Set rec = Server.CreateObjecT(“ADODB.RecordSet“)

rSQL = “Select * from test where ad=’Çağdaş’

rec.open rSQL,veritabani,3,3

do until rec.eof

if rec.eof then exit do

rec.delete

rec.movenext

loop

rec.close

Set rec=Nothing

veritabani.close

Set veritabani=Nothing

%>

Veritabanımıza bağlantı kurduktan sonra;

  1. Tablo ( kayıt setini ) nesnemizi tanımlıyoruz. ( Set rec = Server.CreateObjecT(“ADODB.RecordSet“) )
  2. RSQL değişkenine Sütun adı Ad olan, içeriği Çağdaş olan verileri listelemek için Select * from test where ad=’Çağdaş’ sql cümlesini kullanıyoruz. Tüm verileri listelemek için sadece test yazabilir veya Select * from test yazabilirsiniz. Veya Numarası 207 olan öğrencileri seçmek için Select * from test where no=’207′ cümlesini kullanabilirsiniz.
  3. Rec.open komutunu kullanarak kayıt setimizi, RSQL değişkenindeki sql cümlesi sorgusu yaparak ( Select * from test where ad=’Çağdaş’ ), veritabani bağlantısıyla hem okunur hem de yazılabilir bir şekilde açıyoruz. ( rec.open rSQL,veritabani,3,3 )
  4. Daha sonra sorgu sonunda elimizdeki verileri silmek için bir döngü oluşturmamız lazım. Çünkü bunu yapmaz ve direk silme işlemi yaparsak ilk satırı silip işlemi durduracaktır. do until rec.eof cümlesi ile sorgu sonunda oluşan verilerin satırlarına ulaşabileceğiz. ( Örneğin kayıt sayısı 30 ise, 30 kere içindeki komutları gerçekleştirecektir. )
  5. if rec.eof then exit do cümlesi, satır sonuna ulaştığında döngüden çıkmamızı sağlayacak. ( Kullanmazsak son satırdan sonra veri olmayan geçici satıra ulaştığında, sil komutu verdiğimiz an, veri olmadığından hata oluşacaktır. Fakat bu kod sayesinde son satıra gittikten sonra döngüden çıkmamızı sağlayacaktır. )
  6. Aktif satırdaki verileri rec.delete komutu ile sileriz.
  7. Rec.movenext abir sonraki satıra geçmemizi sağlar. Döngülerde dikkat edilmesi gereken bir komuttur. Aksi halde sonsuz döngüye girip bilgisayarın donmasına sebep olur. Buradaki işlevi ise, silinen satırdan sonraki satıra geçip, işlemleri o satırda yürütmektir.
  8. Kayıt setimizi rec.close kapatıyoruz.
  9. Kayıt setimizi Set rec=Nothing komutu ile işlem yapılmasını engelliyoruz. ( Nedeni : O sayfada eğer birden fazla aynı isimde kayıt seti varsa işlemlerin karışmaması için yapabiliriz )
  10. veritabani.close veritabanı ile bağlantıyı kapatıyoruz.
  11. Set veritabani=Nothing komutu ile o sayfada bir daha varitabani bağlantısının kullanılmasını yasaklıyoruz. ( Nedeni : Access veritabanına ne kadar çok kullanıcı girerse o kadar fazla performans kayıbı olur. Eğer veritabanı bağlantımızı işlem yaptıktan sonra kapatırsak, veritabanında aynı anda işlem yapma hızı, diğer kullanıcılar için daha hızlı olacaktır. )
  • YAŞAYABİLECEĞİNİZ SORUNLAR

Kodları yazarken ayrıntılı bir şekilde denetleme yapmaya çalıştım. Kodlarla ilgili galiba bir sorun yaşamazsınız. En büyük problemi büyük ihtimalle veritabanına yazma izninden yaşarsınız.

  1. Bilgisayarım’ı Açın.
  2. Üst menüden AraçlarKlasör Seçenekleri’ne girin.
  3. Görünüm Sekmesine Gelin.
  4. Basit Dosya Paylaşımını Kullan (Önerilen) seçeneğin yanındaki tick işaretini kaldırın.
  5. Tamam deyip kaydedin.
Basit Dosya Paylasimi Aktif Yapmak (753)

Veritabanına izin vermek için;

  1. Veritabanını sağ tıklayın.
  2. Özellikler seçin.
  3. Güvenlik sekmesine gelin. ( Yukarıdaki işlemi yapmazsanız Güvenlik sekmesi gelmez. )
  4. Ekle butonuna tıklayın.
  5. Seçilecek nesne adlarını girin bölümüne Everyone yazın.Tamam butonuna tıklayın.
  6. Everyone seçin, Tam denetim kısmında, izin ver kısmını işaretleyip kaydedin.

Dosyaya Yazma Izni Vermek (743) Access Veritabani Proje Dosyasi (847)

This entry was posted in Asp, Veritabanları and tagged , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *