|
I'm REAL ?>
Katılma Tarihi: Şub 2006
Nereden: Bursa/es-es
Yaş: 23
Mesajlar: 1,780
|
Değişkenin adı Değeri
ALL_http HTTP Header içinde yer alan bütün değişkenler ve değerleri. Header adlarının önünde "HTTP_" öneki vardır.
ALL_RAW http Header içinde yer alan bütün değişkenler ve değerleri. Header adları ve değerleri istemci Browser'ın verdiği şekilde gösterilir.
APPL_MD_PATH Web Server'ın ISAPI.DLL dosyası için varsaydığı kök dizin
APPL_PHYSICAL_PATH Web Server'ın varsaydığı kök dizinin gerçek yolu
AUTH_PASSWORD Kullanıcı Web Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan parola
AUTH_TYPE Kullanıcı Web Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan yetkilendirme yöntemi
AUTH_USER Kullanıcı Web Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanıcı adı
CERT_COOKIE Kullanıcı siteye bağlanmak için yetkilendirme sertifikası kullanıyorsa kendisine verilen kimlik (ID)
CERT_FLAGS Sertifikanın varlığını gösteren bit değeri
CERT_ISSUER Sertifika varsa veren kurum
CERT_KEYSIZE Secure Socket Layers kullanılıyorsa, bağlantı için anahtar değeri
CERT_SECRETKEYSIZE Özel anahtar değeri
CERT_SERIALNUMBER Sertifika seri no.
CERT_SERVER_ISSUER Sertifikayı veren merci
CERT_SERVER_SUBJECT Server Sertifikasının "konu" alanı değeri
CERT_SUBJECT İstemci Sertifikasının konu alanı değeri
CONTENT_LENGTH İstemcinin gönderdiği bilgi yumağının boyutu
CONTENT_TYPE Ziyaretçiden gelen bilgilerin GET veya POST metoduna göre edindiği tür
GATEWAY_INTERFACE Web Server'ın ziyaretçi ile etkileşim arayüzünün adı ve sürümü. Genellikle: CGI/1.1
HTTPS Ziyaretçi ile bağlantı güvenli ise ON, değilse OFF
HTTPS_KEYSIZE Secure Sockets Layer için bağlantı anahtar sayısı
HTTPS_SECRETKEYSIZE Özel Server sertifikasının gizli anahtar sayısı
HTTPS_SERVER_ISSUER Özel Server sertifikasının veren merci
HTTPS_SERVER_SUBJECT Özel Server sertifikasının konusu
INSTANCE_ID Web Server'ın aynı anda kaç kere çalışmakta olduğu
INSTANCE_META_PATH Şu anda çalışmakta olan Web Server'ın Meta yolu
LOCAL_ADDR İstemcinin IP numarası
LOGON_USER İstemci Windows NT sisteminde ise oturum açma adı
PATH_INFO Çalışmakta olan ASP'nin göreli yolu ve adı
PATH_TRANSLATED Çalışmakta olan ASP'nin gerçek yolu ve adı
QUERY_STRING İstemcinin gönderdiği bilgi kümesi
REMOTE_ADDR İstemcinin Host'unun (ISS'inin) IP'si
REMOTE_HOST İstemcinin Host'unun (ISS'inin) adı
REMOTE_USER İstemcinin gerçek adı
REQUEST_METHOD İstemciden bilgi isteme yöntemi (GET veya POST)
SCRIPT_NAME Çalışmakta olan ASP'nin adı
SERVER_NAME Sunucu'nun adı
SERVER_PORT Sunucuya bağlantının geldiği TCP kapı numarası
SERVER_PORT_SECURE TCP kapısı güvenli ise 1, değilse 0
SERVER_PROTOCOL Server'ın çalıştırdığı HTTP'nin sürümü
SERVER_SOFTWARE Server programının adı ve sürümü
URL Şu anda geçerli URL
RESPONSE NESNELERİ
Bu başlık altında her iki objeyi daha detaylı olarak inceleyeceğiz. Bu objeler browser ve web server arasındaki iletişiminin sağlanması için kullanılırlar. Şimdi bu detaylara ayrıntılı olarak bakalım.
Write Metodu:
Response objesinin en sık kullanılan metodudur. Write metodu ASP sayfamızda bilgileri görüntülemek için kullanılır. Genel kullanımı;
Response.Write [değer] şeklindedir.
<%
Yazılacak_text="Bugün günlerden ne?"
Response.Write yazılacak_text
%>
Şeklinde bir kullanım browser ekranına "Bugün günlerden ne?" diye bir mesaj yazar. Asp script bildiğiniz gibi <%........%> script sınırlayıcıları arasına yazılır. Bu kullanımın iki farklı şekli vardır. Eğer html tagları içerisinde herhangi bir değişkenin taşıdığı bir değeri görüntülemek istiyorsak <%=değer%> daha uygun bir kullanım olacaktır. Fakat bu kullanımın dezavantajı sadece 1 satırlık bir kodlamaya izin vermesidir. Yani;
<%=değer
Response.Write "Bu kullanım hata verir."
%>
Şeklinde bir kullanım yanlıştır. Dolayısıyla birden fazla satır ASP kodlaması gereken durumlarda ASP kodunu <%.......%> satırları arasına yazmak daha uygun olacaktır. Aşağıdaki örneği inceleyelim:
<%
text1= "Merhaba"
text2= "Yeni ASP programcıları"
Response.write text1 & text2
%>
Response.write text1 & text2 kullanımı iki farklı değişken içerisinde tutulan stringleri birleştirerek tek satırda yazmak için kullanılmıştır. "&" işareti iki değişkeni birleştirmek için kullanılır. Response.write bir işlemin sonucu ekrana yazmak içinde kullanılabilir. Aşağıdaki örneği inceleyelim;
<%
sayı1= 24
sayı2= 8
Response.write sayı1/sayı2
%>
Şeklinde bir kullanım ekrana 3 yazılmasına neden olur. Çünkü sayı1 /sayı2 yani 24/8=3 dür, ve response.write 3 şeklinde bir kullanıma eşdeğerdir. Bir formdan bize iletilen bilgileri Request objesini kullanarak alabilir ve gene bu bilgiyi Response objesinin write metodunu kullanarak ekrana yazabiliriz.
<%
Response.Write (Request.QveryString("text1"))
%>
şeklinde bir kullanım bize istek gönderen formdaki text1 adlı değişkeninin değerini ekrana yazar.
Buffer:
Buffer özelliği response ile oluşturulan Html Data akışının html dosya oluşturulması tamamlandıktan sonra veya her satır iletildiğinde gösterilmesi ile ilgili bir özelliktir. Default değeri "on" dur bu değere false u set edecek olursak ;
Response.Buffer=False şeklinde bu işlem yapılabilir.
Clear:
Response.Clear metodu buffer (tampon) edilmiş tüm html bilgisinin silinmesi için kullanılır. Kullanımı: Response.clear şeklindedir. Fakat unutulmaması gereken nokta eğer Response.Buffer= false olarak set edilmiş ise Run-time (çalışma zamanı ) hataya neden olur.
End:
End metodu web server işlemi durdurmasını ve Response.End noktasına kadar oluşturulmuş Html datanın gönderilmesini sağlar. Kullanımı :
Response.End şeklindedir
Expires:
Expires özelliği dakika cinsinden sayfanın browser tarafından hafızada ne kadar tutulacağı ile ilgili bilgiyi set etmek için kuyllanılır. Eğer kullanıcı aynı sayfaya Response.Expires ile belirlenen zamandan daha önce geri dönerse sayfanın hafızadaki versiyonu kullanıcıya gösterilir. Kullanımı : <% Response.Expires=dakika %> şeklindedir. Eğer bu değere "0" set edilirse ( Response.Expires=0 ) sayfaya her geri dönüldüğünde sayfa yeniden yüklenir.
ExpiresAbsolute:
ExpiresAbsolute tıpkı Expire özelliğibne benzer olarak fakat belirtilen sürenin dakika değil tarih veya saat olacak şekilde set edilmesi suretiyle sayfanın geçerlilik süresinin belirlenmesi için kullanılır. Kullanımı :
<% Response.ExpiresAbsolute=#tarih# %> şeklindedir.
Redirection:
Kullanıcıyı bir Asp sayfasından diğerine yönlendirmek için kullanılan bir metoddur. Bu metodun yerini alan 2 yeni metod olan server.transfer ve server.Execute metodlarına daha sonra ayrıntılı olarak göz atacağız. Redirection iel ilgili olarak bilmemiz gereken bazı önemli noktalar vardır. Eğer http header client a gönderilmil ise Response.redirection hataya neden oluyur . bu hatanın önüne geçmek için response.Buffer özelliğini true ya set etmek sureiyle ve herhangi bir noktada response.clear ı kullanarak response.Redirection in hata vermesini engelleyebiliriz. Response.Redirectionun genek kullanımı:
Response.Redirection("yönlendirilecek_sayfa") şeklindir.
Server. Execute ve Server.Transfer
Server. Execute ve Server.Transfer bir ASP sayfası içersinden başka bir sayfanın çalıştırılması veya o sayfanın içeriğinin aynı sayfa içerisinde gösterilmesi için kullanılır. Aralarında ki tek fark ise Server. Execute kullanıldığında hedef sayfa çalıştırıldıktan sonra orijinal sayfa nın işletilmesine devam edilmesine rağmen Server.Transfer kullanıldığında orijinal sayfaya geri dönülmez. Page1 , Page2 veMainpage adı altında 3 sayfamın olduğunu düşünün
ÇEREZLER
Siteye giriyordunuz. Adam size "sayfayı kişiselleştir" diye bir link koymuş. Tıklayıp içinizi döküyorsunuz. Siteyi bir sonraki ziyaretinizde site size adınıza hitaben "merhaba koçum, seni tanıyorum, bana kendini anlatma, çok iyi bilirim ben seni ... ismin şu, sevdiğin kalem markası Rotring, başın ağrıyınca önceden Novalgin alırdın şimdi modaya uyup Aspirin Forte.. monitörün philips marka ve sen simit şeklindeki power düğmesine gıcık oluyorsun ... haa bir de bu siteyi 2. ziyaretin ... nerden bildim ama... hahaha" türünden şaklabanlıklar yapıyor. Peki bunu nasıl beceriyor? Hepiniz çerezlerle olduğunu biliyorsunuz.
ASP ile istemci bilgisayarlara çerez yollamak çok basit bir iştir. Gerçekten çok basit. ASP nin yerleşik delikanlılarından RESPONSE nin bu iş için özel bir metodu var: COOKIES . İstemciye çerez yollamak için bu metodla birlikte anahtar değerler (bir veya iki) gönderiyoruz. (bir ayrıntı: ASP de iki anahtar sadece cookies kolleksiyonunda kullanılıyor). Şimdi örnek kodu inceleyelim:
Response.cookies("kabuk")= "Evet, kabuk"
Response.cookies("kabuklarim")("adi") = "Mucit"
Response.cookies("kabuklarim")("sevdigi_icecek") = "Kızılcahamam Maden Suyu ve Sodası"
Response.cookies("kabuklarim")("medeni_durumu") = "Bekar!"
Response.Cookies("kabuklarim").Expires = Now() + 90
Peki çerezi yolladık tarayıcıya. Yani kabukları. Peki bu kabukları görmek istediğimiz zaman ne yapmamız gerekiyor. İşte o zaman ASP nin diğer delikanlı nesnesi REQUEST talip oluyor göreve. Çünkü bir şeyleri talep etmek onu görevi. Biz de ona bir emir vereceğiz. "Çerezler arasından şu anahtardaki değeri bana bir getiriver bakayım" denildiği anda size o değeri getirecektir. Bu metodu kullanmak, response ile çerez yollamaya çok benzer. Ancak bir fark vardır. Response de ilgili anahtara atama yapılır, burada ise request zaten bize bir değer getirir, biz de bu değeri işimize geldiği gibi kullanırız. Aşağıda REQUEST ile çerezden bilgi almayı görüyorsunuz.
Adim = Request.cookies("kabuklarim")("adi")
ne_icerim = Request.cookies("kabuklarim")("sevdigi_icecek")
medeni_halim = Request.cookies("kabuklarim")("medeni_durumu")
Response.Write Adim & " / " & ne_icerim & " / " & medeni_halim
' sayfadaki çıktı: Mucit / Kızılcahamam Maden Suyu ve Sodası / Bekar!
İşte bu örneklerde çerezle bilgi yollama ve de çerezden bilgi alma tekniğinin ne kadar kolay olduğunu görüyorsunuz.
<html>
<head>
<title> KİŞİSEL ZİYARET SAYACI </title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<meta name="Generator" content="EditPlus">
<meta name="Author" content="Mucit">
</head>
<body bgcolor="#FFFFFF">
<%
ziyaret = Request.cookies("sitem")("ziyaret")
If ziyaret = "" Or Not Isnumeric(ziyaret) Then
Response.cookies("sitem")("ziyaret") = "0"
Response.Cookies("kabuklarim").Expires = Now() + 365
Response.Write "Siteye ilk defa geldiniz. Saolun. Bir daha gelin haaa.."
Else
ziyaret = ziyaret + 1
Response.cookies("sitem")("ziyaret") = ziyaret
Response.Cookies("kabuklarim").Expires = Now() + 365
Response.Write "Siteye " & ziyaret & ". gelişiniz, aferin hep gelin haa.. "
End If
%>
</body>
</html>
APPLİCATION
Belirtilen uygulamadaki tanımlı bütün kullanıcıların bilgiyi paylaşmaları için Application nesnesini kullanabiliriz. Bir ASP-uzantılı uygulama, sanal dizin ve onların altdizinlerindeki tüm .asp dosyaları gibi tanımlanır.
Application nesnesi birden fazla kullanıcı tarafından paylaşılabildiği için, kullanıcıların bir özelliği aynı anda değiştirme girişimlerini önlemek için Lock ve Unlock yöntemleri kullanılır. Bir örnek yaparak çalışmasını inceleyelim. Bu örneğimizle kullanışlı sayfa sayaçları yapabilirsiniz. Örneği inceleyince daha iyi anlayacağınıza eminim...
Aşağıdaki örneğimizi ne olur manuel yazalım ve Sayac.asp adıyla kaydedelim. İsterseniz kopyala-Yapıştır yapabilirsiniz ama elle yazmanız sizin açınızdan çok faydalı olacaktır.
Düşünsenize belki hata yapacaksınız ve bu hatayı aramak zorunda kalacaksınız ve böylece bir kaç kere tekrar etmiş olacaksınız...
<%
Response.Expires = 0
'Expires sayesinde sayfanın içeriğinin bilgilerinin cache bellekte saklanmasını engelleriz.
%>
<%
If (Application("Sayac") = "") Then
'Bu ziyaretçi için Application başlatılmadıysa başlatılsın.
Application("Sayac") = 0
End If
Application.Lock
'Application'ı Kilitliyoruz. Ve kullanıcı giriş yaptıktan sonra 1 değer
'arttırıyoruz.
Application("Sayac") = Application("Sayac") + 1
Application.UnLock
'Ve tekrar serbest bırakıyoruz. Diğer kullanıcılarla bu Application
'kullanılabilsin diye...
%>
Bu Sayfaya <%= Application("Sayac") %> Kere Giriş Yapıldı.
<P><A HREF="sayac.asp">Yenilemek İçin Tıklayın.</A>
Bu kodu yazıp çalıştırdığımız zaman, sayfayı her yenilediğimizde sayaç bir değeri kadar arttırılacaktır. Eğer Sayaç+1 yerine 5 yazarsanız sayacınız 5'er 5'er artacaktır... İsterseniz başka bir örnekle bu nesnemize ait bilgilerimizi pekiştirelim...
Diyelim ki bir chat scripti yazıyorsunuz ya da bir Active Users Scripti yazıyorsunuz, o zaman da bu nesnemizden faydalanmamız gerekecektir. Şimdi hemen diğer bir örneğe geçelim. İlk Olarak bir Chat'e Giriş sayfası yapalım. Tabii bu sanal bir chat. Yani sadece sayıyı kontrol etmeyi yazacağız... NotePad'i açalım ve aşağıdaki kodları chat.asp diye kaydedelim...
<%@ Language=VBScript Codepage="1254"%>
Chat Odamıza Gitmek İçin <A HREF="chatekatil.asp">Tıklayın</A>
<%
Response.Write "Şu anda Chat Odamızda "&application("chat")&" kullanıcı bulunmaktadır..."
%>
Aşağıda göreceğiniz scripti de ChateKatil.asp diye kaydedelim. Ve bir önceki sayfada yazdığımız scriptten bu sayfaya link verdiğimizi hatırlayarak, o sayfada <a href'ine hangi link ismini verdiyseniz o ismi de verebilirsiniz...
<%@ Language=VBScript Codepage="1254"%>
Chat Odamızdan ayrılmak İçin <A HREF="ayril.asp">Tıklayın</A><%
Application.Lock
'Hatırladığınız gibi, önce Application'ımızı kilitliyoruz ve sayacı bir
'arttırdıktan sonra kilidini kaldırıyoruz...
Application("chat")=Application("chat")+1
'Sayacı bir arttırıyoruz.
Application.Unlock
'Ve tekrar Application'ımızı serbest bırakıyoruz ki, diğer kullanıcılar
'giriş yaptığı zaman kilitli kalmasın....
Response.Write "Şu anda Chat Odamızda "&application("chat")&" Kişi Bulunmaktadır..."
'Daha sonra Application'ımızın tuttuğu sayısal değeri, Response
'metoduyla sayfaya basıyoruz. Ve böylece kaç kişinin
'Application'ımızı açtığını görebiliyoruz. Bir ilerki sayfada ise
'Ziyaretçimizin Application'ımızı terkettiği zaman diğer kullanıcıların
'sayacı doğru görüntüleyebilmesi için 1 değer azaltmayı göreceğiz...
%>
Aşağıda göreceğiniz scripti de Ayril.asp diye kaydedelim.
<%@ Language=VBScript Codepage="1254"%>
Chat Odamıza Tekrar Bağlanmak İçin <A HREF="Chat.asp">Tıklayın</A>
<%
Application.Lock
'Hatırladığınız gibi, önce Application'ımızı kilitliyoruz ve sayacı bir
'arttırdıktan sonra kilidini kaldırıyoruz...
Application("chat")=Application("chat") -1
'Sayacı bir azaltıyoruz.
If Application ("chat")<0 then
Application("chat")=0
'Eğer Application'ımızın değeri 0'dan küçükse Application'ımızı 'durduruyoruz.
End If
Application.Unlock
'Değilse kilidi kaldırıyoruz.
Response.Write "Şu anda Chat Odamızda "&application("chat")&" Kişi Kalmıştır..."
'Ve kalan sayıyı sayfaya Response ediyoruz...
%>
SESSİON
HTML ve Javascript ile biraz oynadıysanız, bilirsiniz ki bir sayfadan ötekine değişken değeri aktarmak, imkansıza yakın derecede zordur. Değişkenlerin ömrü, fonksiyonla sınırlıdır. Bir ASP sayfasında herhangi bir değişkeni fonksiyon dışında tanımlamakla ve değer atamakla onu bütün fonksiyonlar için geçerli hale getirebiliriz. Fakat kimi zaman isteriz ki, bir fonksiyonun değeri bütün sayfalarda aynı olsun; ziyaretçinin sayfa değiştirmesi ile değişkenin değeri değişmesin. Bunu ASP'de yapmak çok kolaydır. ASP'de bu zorluğu yenebilmek için değişkenlerimizi Session nesnesi için oluşturabiliriz; ve bu değer ziyaretçinin oturumu boyunca devam eder; bütün ASP sayfalarındaki bütün Fonksiyonlar tarafından bilinebilir. Örneğin:
Session ("Tupras") = 44500
Session Türkçe oturum demektir. ASP'nin özelliği artık bildiğinizi varsayıyorum. ASP Sunucusu Server'a bağlanan, yani bir talepte (Request'de( bulunan her bir ziyaretçiye ayrı bir oturum ayrı bir session açar. Tabii Cookie denetimi yoksa... Ve her Session'a bir ID verir...
Session'ın en büyük özelliği dinamik olmasıdır. Yani ziyaretçinin sitede bulunduğu her saniye Session nesnesi tarafından takibe alınır... Bu sayede eğer gerçekten profesyonel planlamalar yaparken Session nesnesinin metotlarından bir çok şekilde faydalanacağız...
Session nesnemizin en büyük özelliği tanımladığımız değişkenleri diğer geçiş sayfalarında da kullanabilmemiz için tutmasıdır... Hemen bir örnek yaparak Session nesnemize giriş yapalım... Önce Bir Form Hazırlayalım ve bu formu Session.asp diye kaydedelim.
<FORM NAME="formadi" ACTION="SessionDevam.asp" METHOD="POST" >
Lütfen Adınızı Giriniz:
<INPUT TYPE="text" NAME="Isim">
<BR>
Soyadınız:
<INPUT TYPE="text" NAME="Soyad">
<BR>
<INPUT TYPE="submit" NAME="cmdGonder" VALUE="Gönder">
</FORM>
Aşağıdaki Kodları da SessionDevam.asp adıyla kaydedelim.
<%@ Language=VBScript Codepage="1254"%>
<%
Session.Timeout=15
'Oturum süresi, eğer sayfaya hiç bir müdahalede bulunulmazsa 15 'dakikadır.
Session ("Isim")=Request.Form("Isim")
Session ("Soyad")=Request.Form("Soyad")
'Bir önceki sayfadan
'taşıdığımız değeri Request metoduyla Oturumda tutuyoruz.
Dim Icerik
Dim IcerikSonu
%>
<%
IcerikSonu=Session.Contents.Count
For Icerik=1 To IcerikSonu 'Session nesnemizde tuttuğumuz değerleri
'Session.Contents yardımıyla saydırıyoruz.
Response.Write (Session.Contents(Icerik) &"<br>")
'Sonucu sayfaya Response ederek yazdırıyoruz. Ve bir <br> yani
'Break Line koyarak (Alt satıra Geçmemizi sağlar.) Next yordamıyla
'sıradaki Kayıtları ekrana yazdırmasını sağlıyoruz...
Next
%>
Bir ASP sayfasını oturum açmadan yapılandırmak için alttaki kodu ekleyebilirsiniz.. Değerini True yaparak başka bir sayfada oturumu başlatabilirsiniz...
<%@ EnableSessionState=False %>
Session Timeout:
Kullanıcı bir uygulamadaki bir sayfayı belirli bir süre istemez ya da yenilemezse, oturum otomatik olarak sona erer. Bu süre için varsayılan değer 20 dakikadır. Bir uygulama için varsayılan değeri, Internet Information Service çalışma ekindeki Uygulama Seçenekleri özellik sayfasında değiştirebilirsiniz.
<% Session.Timeout = 16 %>
Session Abandon:
Abandon yöntemi, bir Session nesnesinde saklı olan tüm nesneleri yok eder ve kaynaklarını bırakır.
Abandon yöntemini çağırmak istemiyorsanız, sunucu bu nesneleri oturumun süresi bittiğinde yok eder.
Kullanımı:
Session.Abandon
Abandon yöntemi çağrıldığında, geçerli Session nesnesi silinme için havuza alınır, ancak geçerli sayfadaki komut dosyası komutlarının tümü işlenmeden tam olarak silinmez.
Böylece, sonraki Web sayfaları dışında, yalnızca Abandon yönteminin çağrıldığı sayfadaki Session nesnesinde saklı olan değişkenlere erişebilirsiniz.
Örneğin, aşağıdaki komut dosyasında üçüncü satır Oğuz değerini yazar. Bu, sunucu komut dosyasının işlenmesini bitirene kadar Session nesnesinin yok edilmemesinden dolayıdır.
<%
Session.Abandon
Session("Isim") = "Oğuz"
Reponse.Write(Session("Isim"))
%>
Sonraki Web sayfalarında Isim değişkenine erişirseniz, değerinin boş olduğunu göreceksiniz.
Bunun nedeni, Isim değişkeninin, yukarıdaki işlemi bitirdiğinde önceki Session.Abandon nesnesiyle yok edilmesidir.
Server, bir oturumu kapattıktan sonra başka bir Web sayfasını açtığınızda, yeni bir Session nesnesi oluşturur. Değişkenleri ve nesneleri, bu yeni Session nesnesinde saklayabilirsiniz.
Aşağıdaki örnek, sunucu geçerli sayfayı çalıştırmayı bitirdiğinde oturumun son durumunu verir.
<% Session.Abandon %>
FORM ELEMANLARINDA DEĞER ALMA
ActiveX Veri Erişim (ADO) Nesneleri
ASP'nin diğer CGI tekniklerine göre kolay olmasının (peki, kabul, "kolay görünmesi" diyelim!) belki de sadece veri erişimini adeta çocuk oyuncağı haline getirmesidir. ADO, gerçekte bir ASP nesnesi olmaktan çok Server Component'i (sunucu bileşeni) sayılır. Bu bileşene biz ASP içinden bir ActiveX nesnesi ile ulaşırız.
Veritabanı, günümüzde giderek Web Programlarının temelini oluşturuyor. Sayfaların unsurları veritabanı dosyasından alınıyor; ziyaretçilerin verdikleri bilgiler veritabanına yazılıyor. Bu gelişimin başlıca sebebi, veritabanının site güncelleştirme işlerini kolaylaştırmasıdır. Söz gelimi bir sayfadaki seçenekleriniz, bir veritabanından alınıyorsa, bu seçenekleri alan VBScript kodu hiç değişmeden kalacak ve siz sadece veritabanı dosyanızda ilgili verinin alındığı alana yeni değerler girerek, sayfanızı sürekli güncel tutmuş olacaksınız. Bir diğer sebep ise veritabanı dosyalarının idaresinin kolay olmasıdır. Sözgelimi ziyaretçilerinizden aldığınız bilgileri daha sonra muhasebe kayıtlarınıza veya adres defterinize, müşteri kütüğüne ya da başka suretle kayda geçirmek istiyorsunuz. Ziyaretçilerimizin form yoluyla bize ilettiği bilgileri düzyazı dosyasına işlemenin yollarını Dosya sistemi Nesnesi'ni (FileSystem) görürken, ele aldık. Bunu yapabiliriz kolayca. Ama daha sonra düz yazı dosyasının idaresi, veritabanının idaresi kadar kolay olamaz. ASP sayfalarınız Access, Excel, Paradox, FilePro, SQL Server ve Oracle veritabanlarına ve spreadsheet dosyalarına erişebilir; bu dosyalardan veri okur ve bu dosyalara veri yazabilir. Özetle, ASP programlarımızla, SQL-uyumlu veya Windows ve diğer sistemler için yazılmış ODBC (Open Database Connectivity/Açık Veritabanı Bağlantısı) ile uyumlu her türlü dosyaya, ADO nesnesi aracılığıyla ulaşabiliriz.
ODBC ve OLE-DB
Bu kitapçığın baştarafında, 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.
|