1.4. VERİ TABANINA ERİŞİM BİLEŞENİ

 

İntrenette veya şirketlerin intranetlerinde ASP Yöntemi, içeriği her zaman güncelleştirirken aynı zamanda sitenin bakımı ve onarımı ile ilgili maliyetlerin de azalmasını sağlar.

 

WindowsNT ve Internet Information Server altında bu genellikle Internet Database Connector adı verilen bir teknoloji ile başarıyla yapılandırılmıştır; ancak, bu teknolojinin de sınırlandırmaları vardır.

 

Aktif Sunucu Sayfaları bunların hepsini çözümler. Bu da veri tabanına erişim bileşenleri tarafından sağlanır. Veri tabanına erişim bileşenleri sayesinde bütün aktif veri nesneleri (ADO) yani web sayfaları arasındaki eksik bağ ve depolanmış bilgi elde edilir.

 

ActiveX veri nesneleri, bütün bilgilere erişimi sağlayan bir bağlantı mekanızmasıdır. En çok kullanılan biçimi, ilişkilendirilmiş bir veritabanına bağlantı sağlamak içindir. ASP’lerin içeriği bir veri tabanıyla uyumlu VBScript veya JScript ile yazmaya uygundur. ASP’nin esnekliği ile, ADO bize internet üzerinde kullanıcı-sunucu  arasındaki işlemleri yaratmaya izin verir.

 

ADO, ilişkilendirilmiş açık veri tabanı bağlantısından (ODBC), veri tabanlarına erişimi sağlar. Hangi ODBC sürücüsü uygunsa o bilgi kaynağı için kullanılabilir. Sadece özel veri tabanı olan uygulamalarda (SQL, ORACLE, Access v.b) değil ayrıca excel gibi kayıtlarda veya metin içerikli dosyalarda da kullanılabilir.

 

ADO aslında OLE DB adlı bir teknoloji üzerine kurulmasına rağmen içerdiği metod ve özellikleriyle oldukça kullnaışlı bir bilgi arabirimi sağlar.

 

VERİ SAĞLAYICI

ADO başka bir katmnanın üzerine (OLE DB) inşa edildiği için, veri ile bağlantıyı sağlayacak bir diğer katmana ihtiyaç duyar .Başka bir deyişle, sadece sürücü yazılımını düşünüp (ömeğin ODBC), verinin gerçek sağlayıcısının ne olduğunu ele almamız gereklidir. ODBC en çok kullanılan OLE DB kaynağıdır. Şekillendirilrniş haline de MSDASQL diyebiliriz

 

 

ADO'nun kapasitesi OLE DB kaynağının kapasitesine göre değişir. Bazı nesneler değişik çalışır özellikleri eksik olabilir veya zorunlu nesneler yoktur veya kullanılamazlar. çoğu ODBC sürücüsü ADO'nun kullandığı imleç tiplerini sağlamazlar ama buna rağmen imleç çeşitleri ile ODBC imleç çeşitlerini kanştırmayılliz. ODBC kaynağını kullanan ADO ODBC imleçlerini kullanmaz. Kendi imleçlerini kullanır.

 

1.4.1. ADO NESNE MODELİ

 

ADO, çoğunlukla Microsoft Access'de ve diğer nesne tabanlı uygulamalarda içerilen veri tabanı erişimini sağlayan bir mekanizmadır . Örneğin, hiyerarşisinde 3 temel nesne bulunur. Bağlantı (connection), kayıt kümesi (recordset) ve komut (command) ve birkaç yardımcı nesne kolleksiyonu, parametreler, nesneler ve hatalardır.

 

 

Connection nesnesiyle aktif bir bağlantı kurabiliriz. Bu bağlantı genellikle veri tabanı dışında bir yerde saklanmış bir dataya erişimi sağlar. Bilgi kaynağından kayıtları elde etmek için SQL dizini çalıştırılır veya bilgi doğrudan ele alınır. Bu gibi işler için Command nesnesini kullanırız. Kayıt kümesi nesnesi çalıştırılmış SQL dizininde dönen dataya veya depolanmış bir prosedüre veya açılan bir tabloya erişimi sağlar.

 

Bağlantı nesnesi hata nesneleri koleksiyonu içerir. Kayıt kümesi nesnesi olan koleksiyonunu barındırır. Bu koleksiyonun her üyesi alanlar hakkında bilgiler içeren kayıt kümesinin içinde bulunan alan nesneleridir.

 

ADO daha basit bir nesne hiyerarşisine sahip olmasına rağmen çoğu veri tabanı uygulamalarından daha rahattır .Bağlantı nesnesi şemanın en üstünde yer alsa da kayıt kümesi yaratırken bunu kullanamayız. Ama, aslında nesneler kendi kendine hiyerarşiyi izlemeden kullanılabilir. Bu bölümde biraz sonralan anlatılacaktır. Şimdi bilginin işlenişi ve kullanışı ve bilgi kaynağına nasıl bağlanılacağına bakalım. Önce ana nesneye bakalım.


 

1.4.2. CONNECTION-BAĞLANTI NESNESI

 

Bir veri tabanına bağlantıyı tanımlamak doğrudan yapılan bir işlemdir. İlk adım, bağlantı nesnesine bir örnek oluşturmaktır .Aşağıda, veri kaynağına erişimi sağlayan bir bağlantı ömeği görülmektedir.

 

Set VTBag=Server.CreateObject(“ADODB.Connection”)

 

Sunucu nesnesinin CreateObject metodunu kullanarak yeni oluşturulan bir bağlantı nesnesine gönderilmek üzere tutulmuş bir değişken o an elde edilir.

 

Bağlantı ayarkarı

 

Bu bağlantıyı her veri kaynağına erişmek istediğimizde her zaman oluşturabiliriz ya da bir sayfada bir kez oluşturur ve sürekli bunu kullanınz. Alternatif olarak bunlan oturum (session) veya uygulama (application) bazında oluşturur ve birkaç sayfada kullanırız. Veri tabanıyla birkaç işlem sergiliyorken, genellikle aktif bağlantılar sürdürülür. Hepsine değişikbağlantılar kullanılıyor olsa bile.

 

Server.CreateObject deyimini, ya Session_onStart Application_onStart rutinlerini global.asa dosyasına ekleyerek kullanılabilir veya <OBJECT> etiketini tercih edebilirsiniz.

 

Sub Application_onStart {)

Set VTBag=Server .CreateObject(" ADODB.Connection'')

Set Application (''VTBag'')=VTBag

End Sub

 

Veya

 

<OBJECT RUNAT=Server Scope=Application ID=VTBag Prog ID=“ADODB.connection”>

</OBJECT>

Sub Application_on Start ()

Set Application ("VTBag'')=VTBag

End Sub

 

ODBC'nin 3.0 versiyonunda connecting pooling denen ve bağlantının birden çok kullanıcıya kontrolünü sağlayan bir özellik vardır. Connecting pooling-bağlantı havuzlama özelliğini kullanmanın en iyi yolu veritabanı bağlantısını, kullanıldığı her sayfada açıp kapamaktır. Bu ODBC'nin bağlantılan en etkili sekilde kontrolüdür


 

1.4.3. CONNECTION NESNESİ METOD VE ÖZELLİKLERİ

Bağlantı nesnesi bize onunla çalışmamız için metod ve özellikler sağlar.

Bu 3 gruba ayrılır. Bağlantıyı açıp kapama, bağlantı ileilgili bir bilgi kaynağındaki komutun çalıştırılması ve kontrol işlemleridir. Aşağıdaki tabload ActiveX veri nesnesi metod ve özellileri vardır.

 

Metod

Tanım

Open

Bir veri kaynağına yeni bir bağlantı yapar.

Close

Var olan açık bağlantıyı kapatır

Execute

Var olan bir sorguyu, SQL cümlesini yada stored proceduru çalıştırır.

BeginTrans

Yeni bir işlem başlatır

CommitTrans

Yapılan işlemi kaydeder

RollBackTrans

Yapılan işlemdeki değişiklikleri iptal eder.

OpenSchema

Sunucudaki skriptler için veri tabanı şemasını kolon tablo vs. görüntülenmesini sağlar.

 

Özellik

Tanım

Attributes

Var olan işlem bittiğinde yenisinin başlamasının kontrolünü yapar

CommandTimeOut

Dönen bir hata veya denemenin bitirilmesinden önce komut bekleme süresini belirler.

ConnectionString

Bilgi kaynağına bağlanılırken kullanılna bilgi.

ConnectionTimeOut

Hata dönüşü veya denemeden önce bağlantı oluştururken kaç saniye bekleyeceği

CursorLocation

İmlecin sunucu(AdUseServer) damı yoksa istemci tarafında(AdUseClient) mı konumlandırılacağı

DefaultDataBase

Varsayılan Veritabanına dönüşü sağlar

IsolationLevel

İzolasyon seviyesini belirler

Mode

Sağlayıcının erişim izinlerini ayarlar veya döndürür

Provider

Sağlayıcının adını ayarlar veya döndürür

Yil

Bağlantının açık veya kapalı olmasını döndürür.

Version

ADO’nun versiyon no’sunu döndürür.

 

Bir bağlantının açılması

 

Bir kere bağlantı nesnesinin ömeğini sunucu nesnesi CreateObject metodu ile oluşturduğumuzda onu kullanmaya hazırızdır. Aslında bu bir şey değildir. Bir sonraki adım veri kaynağını açmak için bağlantıyı kullanmaktır. Bu yolla veriye erişir ve kaynağın içinde kullanırız. Bu da yeni open metoduyla yani bağlantı nesnesinin sağladığı başarıdır. Open metodunun bağlantı nesnesi için gerekli kullanım:

 

Connection.Open  BağlantıStringi, Kullanıcı, Şifre

 

Bağlantı Stringi parametresi veri kaynağının adıyla (DSN) koşullanır. Eğer DSN yerine detaylı bağlantı koşulu sağlarsak ADO 5 Standart parametre tanımlar. Herhangi bir eşitlik işaretine sahip BağlantıStringi detaylı bağlantı olarak açılır.

 

 

Parametre

Tanım

Provider

Bağlantı için gerekli kaynağın ismi

FileName

Bağlantı kaynağının dosya ismi

Datasource

Kaynak adı veya veri kaynağının dosya adı ODBC ile ilişkili SQL veri tabanı

User

Bağlantı açılırken kullanmak için kullanıcı adı

Password

Bağlantı açılırken kullanılacak şifre

 

 

 

Bu parametrelerin hiçbiri ADO Tarafından kullanılmaz ve direkt kaynaktan gelir.

Provider veya file name parametrelerinden sadece birini belirleyebiliriz. Bağlantıyı bir defa açtıktan sonra, BağlantıStringi sadece okunabilir konumdadır.

 

Set VTBag=Server.CreateObject(“ADODB.Connection”)

VTBag.Open “DataBase=cihaz;DSN=cihaz;UID=sa;PassWord= ;”

 

Bağlantı cümlesi detaylı olarak bu şekildedir.

 

Bağlantı nesnesi ile komutları çalıştırmak

Verileri, veri kaynağına çevirmek için bağklantı nesnesinin execute metodu kullanılır.

 

Örnek

Set VTBag=Server.CreateObject(“ADODB.Connection”)

VTBag.Open “cihaz”

VTBag.Execute “DELETE FROM Cihaz Where yil=’1991’”

 

Bağlantı İşlemlerini Kullanmak

VeriTabanı kullanıldıktan sonra aktif bağlantıyı kapatabiliriz. Bu işlem nesnenin kullandığı bellek kaynaklarını serbesty bırakmak için de nothing metodu kullanılır.

 

VTBag.Close

Set VTBag=Nothing

 

Yapılması tavsiye edilse de Active Server Pages referans dışına çıkınca otomatik olarak bu işlemi yapar.

 


 

1.4.4. RECORDSET NESNESİ

 

Sorgulardan dönen verileri depolamak için recordset nesneleri kullanılır. Bu nesne kayıtları bellekte tutan bir tablo olarak düşünülebilir.

 

RecordSet Nesnesinin Metod ve özellikleri

 

Metod

Açıklama

AddNew

Güncellenebilir kayıt kümesine yeni kayıt ekler

CancelBatch

Yığın halindeki bir güncellemeyi iptal eder

Clone

Geçerli kayıt kümesinin bir çiftini oluşturur

Close

Açık bir kayıt kümesini ve ona bağlı nesneyi kapatır.

Delete

Kayıt kümesindeki geçerli kaydı siler.

GetRows

Bir Dizideki satırların sayısını dödürür.

Move

Pozisyonu belirtilen kayda taşır

MoveFirst

MoveLast

MovePrevious

Move Next

İlk, son, önceki ve sonraki kayıtlarda gezmek için kullanılır.

NextRecordSet

Sorgudaki bir sonraki kayıt kümesine geçer

Open

Bir kümesinde bir imleç açar

Requery

Orjinal sorguyu bir defa daha çalıştırarak veriyi günceller.

Resync

Veriyi günceller, fakat sorguyu yinelemez, sadece güncellenen kayıtları günceller.

Supports

Kayıt kümesinin esas fonksiyonları desteklemesini sağlar

Update

Geçerli kayıttaki değişiklikleri saklar

UpdateBatch

Yığın halindeki güncellemeleri diske yazar

 

Özellik

Açıklama

BOF

Geçerli kayıt ilk kayıt ise True döndürür

EditMode

Geçerli Kaydın durumunu gösterir

EOF

Geçerli kayıt son kayıt ise True döndürür

RecordCount

Kayıt kümesindeki geçerli kayıtların sayısını döndürür

Status

Geçerli kaydın durumunu gösterir

 

 

Bir Sorguyla RecordSet Oluşturmak

Recordset’e bilgi yüklemek için SQL Sorgularını kullanabiliriz.

 

Set VTBag=Server.CreateObject(“ADODB.Connection”)

VTBag.Open “Cihaz”

Set oRs=VTBag.Execute “SELECT * FROM Cihaz WHERE yil=’1999’”

 

 

 

Bir Tablodan RecordSet Oluşturmak

Sadece veri döndürebildiği için Execute Metodu’nun bir kullanım şeklide sadece tabloa adı yazmaktır.

 

Set VTBag=Server.CreateObject(“ADODB.Connection”)

VTBag.Open “Cihaz”

Set oRs=VTBag .Execute (“Cihaz”)