Tuesday, 3 November 2009

ADO Nedir

ADO Nedir?

ADO (ActiveX Data Objects), Microsoft'un veritabanı uygulamaları için geliştirdiği bir bileşendir. IIS ve PWS ile birlikte otomatik olarak kurulur. Biz ADO'yu ASP sayfalarımızdan veritabanına erişmek ve veritabanı üzerinde işlemler yapmak üzere kullanacağız.

ADO ile veritabanı uygulamaları standart bazı adımları içerir;

• Veritabanı bağlantısının oluşturulması
• Veritabanı başlantısının açılması
• Kayıt dizisinin oluşturulması
• Kayıt dizisinin açılması
• ...Veritabanı ile yapılacak işlemler
• Kayıt dizisinin kapatılması
• Veritabanı bağlantısının kapatılması.

ADO Kayıt Kümesi Yöntemleri

ADO Kayıt Kümesi Yöntemleri

Yöntem Açıklama

Open Veri saglayıcısından bir sonuç kümesi alır ve erişime hazır duruma getirir.
clone Var olan bir kayıt kümesi nesnesinden bir adaet çagaltır.
Requery Bir kayıt kümesi nesnesindeki bilgiyi güncelleştirir.
Resync Asıl veritabanından alınan kayıt kümesi nesnesindeki bilgiyi yeniler.
nextRecordset Kayıt kümesi nesnesini temizler Sonuç kümesini hazır duruma getirir.
Close Açık bir Kayıt kümesi nesnesini ve varsa bağlı nesneleri kapatır.

Taşıma
Move Gçerli kayıt konumunu belirli sayısı kadar ileri yada geri taşır.
MoveFirst Bir kayot kümesi nesnesindeki birinci kaydı geçerli kayıt yapar.
MoveLast Kayıt kümesi nesnesindeki sonuncu kaıdı geçerli yapar.
Movenext Kayıt kümesi nesnesinde sonraki kaydı geçerli kayıt yapar.
Find Belirtilen bir şartı geçerli kayıt yapar.
Seek Belirtilen bir şartla eşleşen satırı hızla bulmak için bir kayır kümesinin dizinde arama yapar.

Güncelleme
AddNew Alan degeini kabul etmeye hazır yeni boş bir kayıt yaratır.
Update Varsa geçerli kayda yapılan degişiklikleri kabul eder.
CancelUpdate Varsa Yeni bir kayda yapılan degşiklikleri iptal eder.
Delete Geçerli kaydı kada kayıt gurubunu siler.

ADO Kayıt Kümesi Özellikleri

ADO Kayıt Kümesi Özellikleri

Özellik Açıklama

AbsolutePage Geçerli kaydın bulundugu sayfa numarasını tanımlar.
AbsolutePosition Geçerli kaydın sıradaki konumunu belirler.
Active Command Bir kayıt kümesi nesnesini yaratan komut nesnesini gösterir.
BOF Geçerli kayıt konumunun birinci kayıttan önce geldigini gösterir.
Bokkmark Geçerli kaydı benzersiz biçimde tanımlayan bir deger verir.
EditMode Geçerli kayıtda deişiklik yapılıp yapılmadıgını gösterir.
EOF Geçerli kayıt konumunun son kayıttan yapılıp yapılmadıgını gösterir.
Filter Bir kayıt kümesi nesnesindeki kayıtları seçerek süzer.
Index Bir kayıt kümesi nesnesi içingeçerli etkin dizini tanımlar
MaxRecords Sağlayıcının veri kaynagından döndürdügü kayıt sayısını sınırlar
PageSize Kayıt kümesindeki bir sayfada bulunan kayıt sayısı.
PageCount Bir kayıt kümesindeki kayıt sayısını gösterir.
Source Bir kayıt kümesindeki nesnesindeki verinin kaynagı.
Status Geçerli kaydın toplu güncellemelereya da deger toplu işlemlere göre durumu.

ADO Nesnesini Kapamak

ADO Nesnesini Kapamak

Bir ADO Nesnesini kapatmak, close yöntemini çagırmak dişında hiçbir şey gerektirmemektedir. "Bag" adlı bir connection nesnesini kapatmak için aşagıdaki örnegi yazın.

bag.Close

Bir connection nesnesini kapatmayı unutursanız, ASP komut dosyası işleyişi sonunda bunu bulup, kapata bilir ve bunu bellekten çıkarta bilir en azından plan böyle. Uygulamada, yarattıgınız her nesneyi her zaman kapatır ve serbes bırakırsınız, Web sunucunuz daha dengeli olur.


Bir Connection nesnesini, kapattıktan sonra bile bellekte kalır. "Bag" adlı Connection nesnesini bellekten çıkartmak için aşagıdaki örnegi kullana bilirsiniz.

Set bag = Nothing


NOT

Örneklerde kullandıgım "Bag" nesnesi Deiştirile bilir.

Ado Nesnesi Yaratmak

Ado Nesnesi Yaratmak

ADO Connection nesnelerini yaratmak kolaydır çünkü belirtilmesi gereken seçenekler yoktur.Aşagıdaki örnek işinizi helleder. Degiştirilmesi gereken tek şey ortaya çıkan nesnedir "bag".

set bag = Server.CreateObject("ADOB.Connection")

ADO Nesnesini yaratmanın başka yollarıda vardır mesala;

Dim bag as New ADODB.Connection

Her ikiside ADO Connection nesnesi yarata bilir. Ancak VBScript birincisini gerektirir.

Ado Recordset Open

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

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

<%
Dim Veriyolu, Kayitdizisi, Sorgu
Set Veriyolu = Server.CreateObject("ADODB.Connection")
Veriyolu.Open "uyeler"
Set Kayitdizisi = Server.CreateObject("ADODB.Recordset")
Sorgu = "SELECT * FROM table1"
Kayitdizisi.Open Sorgu, Veriyolu, aOpenStatic
%>
Dns Siz bağlantı
<% Set VT= Server.CreateObject("ADODB.Connection" )
VT.Open "DBQ=" & Server.MapPath(" uyeler.mdb" ) & ";DRIVER={Microsoft Access Driver (*.mdb)}"
%>

Burada, DNS'siz bağlantı için veritabanı dosyasının Server'daki göreli yerini, adını ve hangi sürücünün kullanılacağını belirtiyoruz.

<%
Set KS = Server.CreateObject ("ADODB.RecordSet" )
Sql = " Select * from table1 "
KS.Open sql,VT,1,3
%>

Burada da recordset’ i tanımladık ve sql ile tamınlanan sorguda da table1 verileri cagırıyoruz.

ADO Sabitleri

ADO Sabitleri

ADO+ODBC yoluyla kuracağımız veri bağlantıları, çoğu zaman adeta şifreli ifadeler içerebilir ve bir çok komutun argümanı öğrenmesi zor sayılar halinde verilir. Microsoft ve kullanılmaya hazır ASP Uygulamaları üreten firmalar, bu karmaşık ifadeleri düz metinler olarak ifade etmeye yarayan haricî dosyalar (include files) hazırlar ve sunarlar. Bunlar arasında en yaygın olanı (bu kitapçığın kodları arasında bulunan) Microsoft'un ADOVBS (adovbs.inc) dosyasıdır. (Aynı dosyanın JavaScript sürümü ise adojavs.inc ardını taşır). Bu dosyadan yararlanabilmek için, sitenize kopyalamanız ve daha sonra sayfalarınıza şu kodu eklemeniz gerekir:

<!- - #include file="adovbs.inc" - - >

Bu dosya, Server tarafından icra edilir ve ADO nesnesinin sayı halindeki bütün argümanlarını anlaşılabilir İngilizce kelimelere çevirir. Bu dosyanın içeriğinden nasıl yararlanacağımızı ele alacağız.

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

Ado Bağlantı Yolları

Ado Bağlantı Yolları

Veritabanına bağlanmak için iki seçeneğiniz var. Birincisi DSN (Data Source Name) ile bağlanmak ikincisi ise DSN kullanmadan, dosyanın fiziksel yolunu göstererek bağlanmak. DSN bağlantılarını windows ve hatta unix sistemlerinde Microsoft'un ODBC (Open Database Connectivity/Açık Veritabanı Bağlantısı) sunucusu yönetir.

İkinci yolda, DSN baðlantısı kullanmadan bir veritabanı bağlantısı oluşturabiliriz. Kuşkusuz bul yol çok daha kolaydır.

ODBC ile DSN Bağlantısı

Öncelikle bilgisayarınızda veritabanı oluşturma programı örnegin Microsoft access yüklü olduğunu Kabul ediyorum.

MS Access Programını Kullanarak ilk once uyeler.mdb db dosyasını oluşturacagız. Bu veri tabanında aşagıdaki iki tabloyu tanımlayın.

Table 1


Alan Adi:

Veri türü

uyeNo

AutoNumber (Birincil Anahtar/Primary Key)

uyeAdi

metin

uyeSoyadi

metin

email

metin

mesaj

memo

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.

ASP Veri Uygulamaları ODBC

Açilacak kutuda Add/Ekle dügmesini tiklayarak, yeni veri kaynagi olusturmak için ilk adim olan veriyi okumakta kullanacagimiz sürücüyü seçebilecegimiz kutunun açilmasini saglayin. Burada, yukarida olusturdugunuz veri dosyasina uygun sürücüyü seçin. Örnek uyeler.mdb'yi kullaniyorsaniz, birinci seçenek olan Microsoft Access Driver'i seçmeniz gerekir. Son dügmesini tiklayin ve Access dosyasinin kurulumunu yapmaya baslayalim.

ASP Veri Uygulamaları ADO

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ı uyeler.mdb dsoyasını 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 "uyeler "
%>
Recordset (Kayıt dizisi)

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

ADO Connection Nesnesini Açmak

ADO Connection Nesnesini Açmak

Bir connection nesnesi yaratmak, kendiliginden herhangi bir veri tabanıyla iletişimi açmaz; bunun için connection nesnesinin Aç yöntemini çagırmalısınız. bunu örnek verelim; connection.Open ConnectionString. UserID. Password

Not : Veritabanı açmak oturum açma güvenligi gerektirmiyorsa ya da bu bilgiyi connectionString bagımsız degişkeniyle saglamayı seçerseniz, UserId ve Password degişkenlerini atlaya bilirsiniz