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.

Â
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.

Â
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.
Yorumlar
Yorum Yok
Yorumunuzu Ekleyin
Yorum eklemek için giris yapmalısınız.