Connection (Veritabanına bağlantı)

MidNighT

Kıdemli Üye
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”

%>

Burada, Server’ın CreateObject metodu ile ADOBD.Connection nesnesini oluþturuyoruz. Oluþturduğumuz bağlantıya istediğimiz değiþken adını verebiliriz. Bu örnekte veriye kurduğumuz bu bağlantı Veriyolu adıyla biliyor. Bu yolla sağlayacağımız veriler, ASP programı boyunca bir isimle bilinmelidir. Veriyolunun açacağı veri kümesinin ismini buradaki “Veri_adi” kelimelerinin yerine yazarız. Bu isim, bağlantının .Open metodu ile açacağı verinin adıdır. Bu, kullanacağımız veritabanı dosyasının adı değildir. Bu isim ile söz konusu veritabanı dosyasını iþletim sisteminin ODBC aracına tanıtırken kullandığınız isim aynı olmalıdır. Bir veritabanı dosyasını ODBC aracını kullanarak sisteme tanıtma (DSN-Data Source Name) ayarının nasıl yapıldığını daha önce ele aldık. Bu üç satırla, ASP programı, Server’dan ADO aracılığıyla, sistemin “Veri_adi” kelimelerinin yerine yazacağınız isimli veriye yol açacaktır. Örneğin yukarıdaki kutuda oluþturduğumuz ODBC veri kaynağını kullanacağımız zaman, buraya “uyeler” kelimesini yazacağız,

Recordset (Kayıt dizisi)

Veritabanına bağlantıyı oluþturduktan sonra, buradaki tabir yerindeyse ham verileri, kullanılır kayıtlar haline getirmemiz gerekir. Bunu ise ADO’nun Recordset nesnesi sağlar. Kurduğumuz veriyolundan programımıza bilgi gelmesi için .Execute (icra et) metodunu kullanırız; ancak bu komuta icra edeceği bir komut vermemiz gerekir.

Baþtan beri ADO ile kullanabileceğimiz veritabanının SQL (sequyel okunur; Structured Query Language/Yapısal Sorgu Dili) uyumlu olması gerektiğini söylüyoruz. Bu dil, verilerin sabit diske yazılması ve okunmasını düzenleyen bir çok veritabanı dilinden sadece biri, fakat en yaygınıdır. Bir veritabanından veri okumak, veri değiþtirmek veya eklemek için komutlarımızı bu dille vermek zorundayız.

ASP amacıyla SQL komutlarından çok az kısmını kullanırız; bu bakımdan ASP Tasarımcısı olmak için sınırlı da olsa SQL öğrenmek gerekir.



Hızlı SQL Kursu: Select

ASP amaçlı olarak kullanacağımız komut gerçekte sadece SELECT’tir. Fakat hatırlamamız gereken veritabanı ilkeleri var. Bir veritabanı kabaca alanlar (sütunlar) ve bunların içinde yazılı değerler (satırlar) halinde olur; her satır bir elemanın değerleridir; ve Kayıt adını alır.

SELECT Bir veritabanından veri seçmeye yarar. SQL Sorgusu da denir. Dört bölümü vardır. Tipik bir SELECT komutu þöyle yazılır:

SELECT alan1, alan2.. FROM tablo WHERE koþul = değer ORDER BY alan1

Seçilecek alanların adı SELECT komutunun ilk bölümünü oluþturur. Bir veritabanında birden fazla tablo bulunabilir; seçimin hangi tabloda yapılacağı FROM bölümünde gösterilir. Kimi zaman bir tablodaki alanda bulunan bütün kayıtları seçmek isteyebiliriz; fakat çoğu zaman seçimin sınırlarını daraltmak için sözgelimi bir alandaki değerlerin vereceğimiz bir koþula uymasını isteyebiliriz. Bu durumda “koþul = değer” testini WHERE bölümünde yaparız. Seçilen değerlerin hangi alandaki kayıtlara göre sıralanmasını istiyorsak, ORDER BY bölümünde bunu belirtelibiliriz. Örnek:

SELECT Adi, Soyadi, TelNo FROM Telefonlar WHERE Alankodu = 0535 ORDER BY Adi

Bu komutla veritabanının Telefonlar isimli tablosundan Adi, soyadi ve TelNo adlı sütunlarındaki kayıtlardan Alankodu sütunundaki değeri “0535” olanları seçmiþ oluruz. Bir tablodaki bütün alanların bütün değerlerini seçmek için SELECT komutunu þöyle yazarız:

SELECT * FROM Veri_adi

Buradaki “Veri_adi” kelimelerinin yerine DSN’e verdiğiniz adı (orneğin yukarıdaki örnekte olduğu gibi, “uyeler” kelimesini) yazacaksınız.

SQL’in INSERT, UPDATE ve DELETE komutlarının nasıl kullanıldığını öğrenirseniz, ADO nesnesinin bunlara denk gelen ve aþağıda nasıl kullanıldıklarını göreceğimiz yeni kayıt ekleme, kayıtları güncelleme ve silme metodları yerine kendi SQL komutlarınızı yazabilirsiniz.




Sağladığımız veri bağlantısını kullanarak, yararlanabileceğimiz bir veri grubu oluşturmak için, yukarıda .Connection metodunu kullanırken yazdığımız kodu şöyle geliştirmemiz gerekir:

<%

Dim Veriyolu, Kayitdizisi

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

Veriyolu.Open “Veri_adi”

Set Kayitdizisi = Veriyolu.Execute(“SELECT * FROM Veri_adi”)

%>

Buradaki .Execute metodu, DSN’ini verdiğiniz kaynaktaki veritabanından verileri fiilen alıp getirmeye ve bir Recordset (Kayıt dizisi) oluşturmaya yarar. Kayıtları tek tek okuması için Kayitdizisi’ne bir sonraki kayda gitmesini bildirmemiz gerekir. Bunu .MoveNext (bir sonrakine git) metodu ile yaparız. Okunan her kayıt Kayitdizi adlı değişkenin içindedir. Bu nesnenin elemanlarını herhangi bir döngü yöntemiyle ziyaretçinin Browser penceresinde görüntüleyebiliriz; bir HTML etikenin içeriği yapabiliriz; veya başka bir şekilde kullanabiliriz. Aynı döngü, .MoveNext ile bir sonraki kaydın okunmasını da sağlayacaktır. Bunun bir örneğini daha sonra göreceğiz.

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 ***ü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.

.Recordset metodu, ile bir veritabanını okuyacak imleci üç şekilde ayarlayabilirsiniz:

Static (Duragan) SELECT komutu icra edilir ve okunan kayıt arzu ettiğiniz değişkene yazılır. (ADO Sabit Değerleri dosyasınıdan yararlanıyorsak, adOpenStatic)

Forward only (Sadece ilerle) İmleç veritabanı içinde sadece ileri doğru gider ve her seferinde bir kayıt okunur. (Varsayılan imleç türü budur.) (ADO Sabit Değerleri dosyasınıdan yararlanıyorsak, adOpenForwardonly)

Dynamic (Dinamik) Veritabanına ulaşan ve değişiklik yapan başka bir kullanıcı varsa, bu değişiklik size anında yansıtılır. (ADO Sabit Değerleri dosyasınıdan yararlanıyorsak, adOpenDynamic)

Bu yöntemlerden birini seçmekle veriyi belirli bir okuma tarzında açmış olursunuz. Bu yöntemlerden hangisini seçtiğinizi .Recordset metodunu kullanacak olan .Open komutunun argümanı olarak açıkça belirtmeniz gerekir. ADO, bunun için sizden sayılar halinde argümanlar ister.

Not:Alıntıdr
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.