ASP ile ODBC ve OLE-DB Kullanımı Resimli Anlatım

asp-19 ASP dosyalarınızı geliÅŸtirmeye baÅŸlamadan önce bilgisayarınızda ODBC (Open Database Connectivity/Açık Veritabanı BaÄŸlantısı) sürücülerinin kurulu olması gerektiÄŸini belirtmiÅŸtik. ODBC, ADO’nun kullandığı tek sistem deÄŸildir; ve Microsoft firması, ODBC’nin yerine hızla OLE-DB adını verdiÄŸi yeni bir teknolojinin alması için yoÄŸun çaba içinde. OLE-DB, ODBC’nin Web’de saÄŸladığı baÅŸarının üzerine bina edilen yeni bir teknoloji. ODBC, iliÅŸkilendirilmiÅŸ (relational) veritabanlarına eriÅŸmek üzere tasarlandığı halde OLE-DB her türlü veritabanına eriÅŸebilir. OLE-DB, ASP programlarımıza yeni nesneler kazandırabilir; kullanılmaya hazır elektronik ticaret bileÅŸenlerini kullanmaya imkan verir. Bu konuda geniÅŸ bilgiyi, Microsoft’tan edirebilirsiniz. ASP sayfalarımızda kullanacağımız ADO nesneleri ilerde de ODBC sürücülerine eriÅŸme imkanını koruyacağı için, ÅŸimdilik sadece ODBC tekniÄŸi ile çalışmakta ve bu tekniÄŸi öğrenmekte sakınca yok. OLE-DB, ODBC’nin yerini almayacak; fakat içinde ODBC’yi de bulunduracak. Bu da ÅŸu anda oluÅŸturacağımız ASP uygulamalarının ilerde OLE-DB tekniÄŸi ile çalışan sunucularda iÅŸleyeceÄŸi anlamına geliyor. 

Şimdi ADO ile aşağıda yapacağımız küçük örnekler için bilgisayarınızda kurulu bir veritabanı programı varsa onu kullanarak bir veritabanı dosyasında uyeler adıyla şu tabloyu oluşturabilirsiniz:  

Alan Adı:

Veri türü

uyeNo

AutoNumber (Birincil Anahtar/Primary Key)

 

 

uyeAdi

metin

 

 

uyeSoyadi

metin

 

 

email

metin

 

 

mesaj

memo

 

 

 Daha sonra da renkler adıyla şu tabloyu yapın:

 

Alan Adı:

Veri türü

renkID

AutoNumber (Birincil Anahtar/Primary Key)

 

 

renk

metin

 

 

Bu tablolardan birincisine bir kaç isim ve diÄŸer bilgileri; ikincisine ise dört-beÅŸ renk adı girin. Bilgisayarınızda veritabanı oluÅŸturma programı yoksa bu kitapçığın kodları arasında bulunan uyeler.mdb adlı MS-Access dosyasını kullanabilirsiniz. Bu dosyayı, kiÅŸisel Web Server’ınızın kök dizinine kopyalayın. Sonra, Denetim Masası’nı açın ve adı ODBC, ODBC 32 Bit, ya da ODBC Data Source olan simgeyi çalıştırın; ikinci sekme olan System DSN’i tıklayın.

odbc_ole-db

 

Açılacak kutuda Add/Ekle düğmesini tıklayarak, yeni veri kaynağı oluÅŸturmak için ilk adım olan veriyi okumakta kullanacağımız sürücüyü seçebileceÄŸimiz kutunun açılmasını saÄŸlayın. Burada, yukarıda oluÅŸturduÄŸunuz veri dosyasına uygun sürücüyü seçin. Örnek uyeler.mdb‘yi kullanıyorsanız, birinci seçenek olan Microsoft Access Driver‘ı seçmeniz gerekir. Son düğmesini tıklayın ve Access dosyasının kurulumunu yapmaya baÅŸlayalım. Buradaki Data Source Name (DSN, Veri Kaynak Adı), biraz sonra ADO nesnesiyle ilgili metodları ve deyimleri yazarken kullanacağımız veri adıdır; buraya “uyeler” yazın; çünkü örneklerde bu veriye “uyeler” adıyla gönderme yapacağız. İsterseniz, Description/Açıklama bölümüne veritabanının niteliÄŸini belirten bir kaç kelime yazabilirsiniz. Sonra, Select/Seç düğmesini tıklayarak ve açılıcak diyalog kutusu yardımıyla veritabanı dosyasını kopyaladığınız yerde bulun; OK/Tamam‘ı tıklayarak, veritabanı seçme iÅŸlemini tamamlayın.

odbc-ole-db-2

 

DSN oluÅŸturma kutularını sırasıyla OK/Tamam düğmelerini tıklayarak kapatın; “uyeler” verisi, ÅŸu andan itibaren bütün Web uygulamalarımızın hizmetine girmiÅŸ demektir. Internet sitenize koyacağınız ve veritabanına eriÅŸmesi gereken sayfalarınız için bu iÅŸlemi gerçek Internet ortamında da yapmak zorundasınız. Veritabanı dosyanızı Internet sitenizde kök dizinine veya bir diÄŸer dizine kopyaladıktan sonra sistem yöneticisine ya elektronik mektupla, ya da evsahibi firmanın yönetim ve teknik destek yardımı saÄŸlayan sayfasında veritabanınızın dosya adını, yolunu, ve DSN olarak kullanmak istedeÄŸiniz ismi bildirerek, bizim burada yaptığımız iÅŸi Server yöneticisinin yapmasını saÄŸlamamız gerekir. ADO’nun bize saÄŸladığı imkanlardan yararlanabilmek için onun nesnelerini kullanılırız. Bu bölümde ADO’nun nesneleri ve metodlarını ele alacağız.

Connection (Veritabanına bağlantı)
ADO’dan yararlanabilmek için kullanacağımız ilk nesne Connection‘dır. Bu nesne ile veritabanı ile baÄŸlantı saÄŸlarız, yol açarız:

<%
Dim Veriyolu
Set Veriyolu = Server.CreateObject("ADODB.Connection")
Veriyolu.Open "Veri_adi"
%>

  

Recordset (Kayıt dizisi)

 

<%
Dim Veriyolu, Kayitdizisi
Set Veriyolu = Server.CreateObject("ADODB.Connection")
Veriyolu.Open "Veri_adi"
Set Kayitdizisi = Veriyolu.Execute("SELECT * FROM Veri_adi")
%>

 Recordset.Open

Veritabanına dayanan Web uygulamalarımızda sorun buradaki gibi sadece veriyi okumakla bitmeyebilir; veriyi güncelleÅŸtirmek veya silmek isteyebiliriz. Bunun için doÄŸruca ADO’nun .Recordset metodundan yararlanmamız gerekir. .Recordset metodu ne yapar? Tıpkı ekranınızdaki bir yazının içinde duran imleç (cursor) gibi hayalî bir imleci götürür verilerinizin en başına koyar. Bu hayali imleci veritabanı üzerinde dolaÅŸtırmak ve gittiÄŸi yerdeki deÄŸeri okutmak bizim iÅŸimizdir.

Bir veriye bağlantıyı kurduktan sonra kayit dizimizi .Recordset metodu ile sağlayacaksak, yukarıdaki örnek kodumuzu şöyle yazmak gerekir: 

 
<!- - #include file="adovbs.inc" - - >
<%
Dim Veriyolu, Kayitdizisi, Sorgu
Set Veriyolu = Server.CreateObject("ADODB.Connection")
Veriyolu.Open "Veri_adi"
Set Kayitdizisi = Server.CreateObject("ADODB.Recordset")
Sorgu = "SELECT * FROM Veri_adi"
Kayitdizisi.Open Sorgu, Veriyolu, aOpenStatic
%>

Bu kod ile, .Recordset metodu son .Open komutu ile bizim için veri baÄŸlantısını saÄŸlar; verdiÄŸimiz SQL Sorgusu icra edilir ve kayıt diziniz Kayitdizisi’ne kaydedilmeye hazır hale gelir. Åžimdi imlecinizi ilerleterek, veriyi fiilen okutmanız gerekir; ki bunu yapmak için yukarıda kolayca .Execute metodu ile oluÅŸturduÄŸumuz kayıt dizisinde kullandığımız basit .MoveNext‘ten daha çok imkana sahibiz: MoveFirst: Kayıt dizisinin (Recordset’in) birinci satına gider.

MoveLast: Kayıt dizisinin (Recordset’in) son satına gider.

MoveNext: Kayıt dizisinin (Recordset’in) bir sonraki satına gider.

MovePrevious: Kayıt dizisinin (Recordset’in) bir önceki satına gider.

Move: Kayıt dizisinin (Recordset’in) içinde vereceÄŸiniz sayıya göre ilerler. Bunun için iki sayı vermeniz gerekir: baÅŸlangıç noktası ve ilerlenecek kayıt sayısı.

 

Åžimdi gelelim RecordSet nesnemize. RecordSet.Open dediÄŸimiz zaman bu nesnemiz ne yapar?

RecordSet, ekranımızda bir yazının içinde yanıp sönen bir imleç gibi çalışır. Yani bir nevi Hayalet Cursor. Recordset’in amacı bu imleci verilerinizin en başına koymaktır. 

Artık bundan sonrası bize kalan bir iştir. Bu imleci, kayıtlar arasında çalıştırmak bizim işimizdir.
Bu imleci 4 ÅŸekilde ayarlayabiliriz… 

Forward Only: Bu imlecimizle, veritabanındaki kayıtlar arasında sadece ileri doÄŸru ilerleyebiliriz. Geri yani yukarı gitme imkanımız yoktur. Ayrıca yeni kayıt ekleyemeyiz. Ve eÄŸer biz açtıktan sonra, o anda baÅŸkaları tarafından deÄŸiÅŸtirilen veriler varsa, veritabanını yeniden kapatıp açana kadar göremeyiz. EÄŸer Adovbs.inc’le birlikte kullanıcaksak kod içindeki kullanımı adOpenForwardOnly’dir. 

Static: DuraÄŸan anlamına gelir. ForwardOnly’e ek olarak, yukarı doÄŸru ilerleyebilir ve yeni kayıtlar ekleyebiliriz… Adovbs.inc’le birlikte kullanıldığında kod kullanımı, adOpenStatic’tir… EÄŸer biz açtıktan sonra, o anda baÅŸkaları tarafından deÄŸiÅŸtirilen veriler varsa, veritabanını yeniden kapatıp açana kadar göremeyiz.

Dynamic: Adından da anlaşılabileceÄŸi gibi, bu cursor tipi, tam özelliklere sahip cursor tipidir. Yukarı ve aÅŸağıya ilerleyebilir, yeni kayıt ekleyebilir ve deÄŸiÅŸtirebiliriz. EÄŸer biz açtıktan sonra, o anda baÅŸkaları tarafından deÄŸiÅŸtirilen veriler varsa, veritabanını yeniden kapatıp açmadan anında görebiliriz…Kod sayfasında, Adovbs.inc’le birlikte kullanıcaksak, kod içinde kullanımı adOpenDynamic’tir…

Keyset: Bu metodumuzla, baÅŸkaları tarafından deÄŸiÅŸtirilen kayıtları görebiliriz… Cursor’umuz yukarı ve aÅŸağı ilerleyebilir. Adovbs.inc’le birlikte kod içinde kullanımı, adOpenKeyset‘tir…
Kod içinde kullandığımız, adOpenStatic’in hemen yanındaki ise RecordSet nesnemizin kilit özelliÄŸidir. Farklı çeÅŸitlerde kilitler vardır. Bir kaç tanesini yazacağım. 

AdLockReadOnly: Kayıtlı verilerimizin deÄŸiÅŸtirilmesini, üzerine yazılmasını engellememizi saÄŸlar. Yeni kayıt giriÅŸini engeller. Sadece Listelemeye izin verir… 

AdLockOptimistic: Bu metodumuz da kayıtlarımızın güncelleştirilmesini, yeni kayıtlar eklememizi, ve istersek silmemizi sağlar. 

AdLockPessimistic: Bu metodumuz da eÄŸer bir veritabanı üzerinde iÅŸlem yapıyorsak, iÅŸlemlerimiz bitene kadar, diÄŸer iÅŸlem yapabilecek kiÅŸileri engellemk için RecordSet’e kilit koyar.

Kategoriler: ASP, Access, Veritabanı, Web Programlama

Tags: , , , , ,

Yorumlar

Yorum Yok

Yorumunuzu Ekleyin

Yorum eklemek için giris yapmalısınız.