Tekil Mesaj gösterimi
Alt 17 Mart 2007, 20:41   #12
Çevrimdışı
telNET
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: ASP Anlatımı (Dökümandır)




VERİ YÖNLENDİRMELİ WEB UYGULAMASI
Birinci kitapçıkta, ADO nesnesini tanıdık ve ne işe yaradığını gördük. Bu bölümde ADO nesnesinin nasıl kullanıldığını ele alacağız; bu amaçla veritabanına dayanan, HTML etiketlerinin içeriğini bir veritabanından alan ve ziyaretçinin girdilerini bir veritabanına yazan örnek uygulama oluşturacağız. Bunu yaparken ADO’yu tanıtırken ele almadığımız bazı SQL komutları ile tanışacağız.
Örnek uygulamamız, ünlü bir Web Tasarımcısının müstakbel müşterilerine randevu verdiği bir site olacak. Müstakbel müşterilerimiz, Web sitemize bağlanacaklar, nasıl bir Web sitesi oluşturmak istediklerini onlara sunacağımız bir listeden seçecekler; sitelerinin özelliklerini ve bizimle ilk görüşmeyi yapmak istedikleri zamanı belirtecekler; Web programımız, bütün bu bilgileri bir veritabanındaki veri tablolarına dayanarak müstakbel müşterimize seçenek olarak sunacak; ziyaretçinin kabul ettiği randevu zaman dilimini veritabanındaki tabloda başka müşterilere verilmemek üzere, kapatacak. Fakat bu işe başlamadan önce hızlı bir bir veritabanı oluşturma kursu görelim.
Veri için hazırlık
Kullanacağımız veritabanını burada MS Access ile oluşturacağız. Fakat siz istediğiniz herhangi bir programı, örneğin FileMaker Pro veya Paradox’u kullanabilirsiniz. Elinizin altında Oracle veya MS SQL Server varsa, onları kullanmanızdan daha tabiî bir şey olamaz.
İlişkilendirilmiş Veritabanı (Relational Database) deyimini daha öce duymuş olmalısınız. Web Programımızda, böyle bir veritabanı kullanacağız. İlişkilendirilmiş Veritabanı, bir dosya içinde tabloların en az bir sütunundaki kaydın diğer tablolardaki en az bir sütunla aynı olduğu ve bu iki sütun birbirine bağlanmış veritabanı demektir. (Bu örnekte kullanacağımız veritabanının Microsoft Access ile oluşturulmuş örneğini, bu kitapçığın kod örnekleri arasında bulabilir ve bilgisayarınızda kurulu bir veritabanı işleme programı ile inceleyebilirsiniz. Bu tabloları kendi programınızda oluşturmak isterseniz, kayıt alanları ve özelliklerini buradaki örneklere uygun olarak oluşturmalısınız.)
Bu tabloda, müşterinin kurmak istediği site türünü belirten bir endeks sütunu var: TurNO. (Daha sonra bu veritabanını yükleyeceğimiz Web Server’ın işletim sistemini bilmediğimiz için, Türkçe alfabeyi desteklemeyen bir Server’ın “Tablo veya Alan Bulunamadı” hatası vermesini önlemek için alan adlarında Türkçe karakter kullanmamaya özen göstermemiz gerekir.) Bu kayıt, Site Türleri tablosunda da var:
Veritabanını oluştururken bu iki tabloyu TürNO sütunlarından ilişkilendirir ve ilerde veritabanına, “Bana, Müşteriler ve Site Türleri tablolarından TürNo sütunundaki veri aynı olan bütün kayıtları bul” şeklinde bir sorgulama emri (SQL JOIN komutu) verecek olursanız, Windows’un ODBC programı, veritabanını inceleyecek ve ortaya çıkartacağı verilerden biri şöyle olacaktır:
ADI SOYADI EMAIL SİTENO GRAFNO TURNO TURADI TURRAYİÇ
Abdullah Can
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
1 1 2 Intranet 4
Şimdi diyebilirsiniz ki, daha sonra iki tabloyu birleştirmek yerine, neden baştan tek tablo yapmadık da, ilişkilendirme ve bir bir yığın SQL komutu yazma (ve tabiî öğrenme) külfetine girdik? Bunun çeşitli sebepleri var: Bir kere veritabanı uzmanları, birden fazla tabloda aynen tekrar eden değerleri, ayrı bir tabloda toplamayı bilgisayarın bellek yönetimi açısından daha etkin bir çalışma tarzı sayarlar. İkincisi, fiyat belirlerken Intranet türü Web siteleri için uygulayacağımız katsayıyı ilerde değiştirmek zorunda kalırsak, (bu iş tutarsa, en kısa zamanda fiyatlara zam yapacağımız şüphesiz olduğuna göre!) ve elimizde içinde 1500 kayıt bulunan bir tablo varsa, herbirinde türRayiç sütundaki veriyi tek-tek güncelleştirmek çok zor olabilir. Oysa bu tür ilişkilendirilmiş bir veritabanında bir tabloda bir kaydı değiştirmekle, bir diğer tablodaki binlerce, hatta milyonlarca kaydı güncelleştirmiş oluruz. Siz kendi veritabanınızı oluştururken, hangi verilerin hangi tabloda toplanacağına ve hangilerinin ayrı tablolara konulacağına şu kriterle karar verebilirsiniz: Bir tablonun birincil endeksine bağımlı olmayan bütün bilgiler o tablonun dışına çıkmalıdır. (Bu kriter size bir ölçüde şifreli görünüyorsa, veritabanı oluşturma ve yönetme konusunda bir kitap edinmeniz yerinde olur!)
Veritabanı konularına aşina olmayanlar için bir iki noktaya daha açıklık getirmek gerekir. Tablolarımızın alan adlarını ve alanlardaki verilerin türlerini gösteren tabloya bakarsanız, bütün tablolarda bir sütunun “Birincil endeks” diye işaretlendiğini göreceksiniz. Bu alan, biri dışında bütün tablolarda otomatik sıra numarası şeklinde; Müşteri tablosunda ise müşterinin elektronik posta adresi şeklinde tayin edilmiş bulunuyor. Bu alanın varlık sebebi, kayıtlarımızda diğer bütün alanlardaki verileri aynı bile olsa her bir müşterinin ayrı bir varlık olarak korunmasını sağlar. (Tabiî, burada, iki müşterinin aynı elektronik posta adresine sahip olmayacağını varsayıyoruz!)
İnşaata Başlarken
Biraz daha teknik olarak ifade edersek, inşa ettiğimiz programın (Web sitesinin) fonksiyonu, müşteriden bazı temel bilgileri alıp, bu bilgileri müşteri tablosuna işlemek, müşteriye bizim randevu defterimize (veri tabanındaki Randevu tablosuna) bakarak, boş bir zaman önermek, müşterinin kabul ettiği zaman dilimini Randevu tablosuna işlemek, ve bu zaman dilimini başkasına vermemek üzere kapatmak olacak. Biz, Web sitesi tasarımcısı olarak, sürekli, veritabanı dosyasını açarak, yeni randevu alan olup olmadığını kontrol etmek zorundayız. Yine arada bir, Randevu tablosuna yeni müşteri kabul edebileceğimiz boş zamanlarımızı eklememiz gerekir. Bu işlemi, örneğin Access programını kullanarak yapabiliriz. Şimdilik, ya bu tablolara ve ilişkilere sahip bir veritabanı oluşturun; ya da örnek veritabanı dosyasını Kişisel Web Server’ın dizini içine kopyalayın.
ODBC’e Veritabanımızı Bildirelim
Windows’un Denetim Masası’nı açtığınızda, ya ODBC Data Sources, ya da ODBC(32 Bit) adlı bir simge göreceksiniz.
İkinci sekme olan System DSN’i açın ve Add (Ekle) düğmesini tıklayın. Açılacak kutuda, veritabanı dosyanıza uygun sürücüyü seçin. Bu kitapçığın örnek kodları arasında bulacağınız web.mdb adlı dosyayı kullanıyorsanız, Microsoft Access Driver adlı sürücüyü seçin) ve Son düğmesini tıklayın.
Açılacak kutuda Data Source Name (Veri kaynağının adı) kutusuna Web (veya kendi veritabanınızın adını) yazın, isterseniz Description kutusuna veritabanını tanımlayan bir kaç kelime yazabilirsiniz. Database bölümünde Select (Se&#231
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
düğmesini tıklayarak veritabanı dosyanızı bulun.
Şimdi, bilgisayarınızın ODBC arayüzü, Kişisel Web Server’ınız (vereceğimiz ASP komutları dolayısıyla) talep ettiği anda Browser’ınıza Web adlı veritabanından arzu edilen verileri seçip verecek veya bu dosyadaki tablolarda (yine ASP komutları ile talep edeceğiniz) güncelleştirmeleri yapacaktır.
Sıra Web Programı’nda
Kuracağımız sitenin işleyiş tarzını veya stratejisini bir kere daha belirtelim: Sitemize ev sahipliği yapan Web Server’da bir veritabanı dosyamız var ve elimizdeki iş durumuna göre randevu verebileceğimiz, serbest olduğumuz günleri bu veritabanındaki Randevu tablosuna işliyoruz. Ziyaretçilerimiz, ana sayfadan geçtikten sonra, bir Web sitesi yaptğrmek için bizimle görüşmek istiyorlarsa, bazı bilgiler veriyorlar ve bu bilgilere göre, Web programımız, müşteriye tanımladığı siteyi kaça yapacağımızı bildiriyor ve boş olduğumuz zamanların bir listesini sunuyor. Müşteri adayı, bu listeden kendisi için elverişli zamanı seçiyor. Web programımız müşterinin verdiği bilgileri veritabanına işliyor; ve müşterinin seçtiği zamanı randevu tablosunda kapalı hale getiriyor, ki aynı zaman aralığı başka bir müşteriye daha önerilmesin! (Aşağıda, sayfalarımızı adım-adım oluştururken, oluşturduğmuz bazı değişkenlerin ne işe yarayacağı o anda belli olmayabilir. Bunları anlamadan geçmemek için önerim, bu kitapçığın kodlarını edindiyseniz, veritabanını sisteminize tanıtarak, ilgili ASP programını index.htm’den başlayarak bir kaç kere çalıştırmanızdır.)
Önce index.htm sayfamızı yapalım. Bu basit bir “Hoşgeldiniz!” sayfası olacak. aşağıdaki kodu index.htm adıyla kaydedin:
<HTML>
<HEAD>
<TITLE>Web Sitesi Yapılır</TITLE>
<META http-equiv="content-type" content="text/html; charset=ISO-8859-9">
<META http-equiv="Content-Type" content="text/html; charset=windows-1254">
</HEAD>
<BODY bgcolor
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
arkOrange text="white">
<br><br><br><br><br>
<center>
<table width="250">
<tr><td><font face="arial" size="6">Web Sitenize Sahip Olmak İstiyorsunuz?<br></font>
<p><p><p><font face="arial" size="3">Ama nasıl? HTML, ASP, ADO, ODBC ve daha bir &#231;ok alfabe &#231;orbası &#246;ğrenmek zorundasınız
<p>Ama bunları &#246;ğrenmeye zamanınız yok. Aslında &#246;ğrenirsiniz &#246;ğrenmeye, fakat zaman meselesi.
<p>Biz &#231;ook siteler yaptık, ve size de yardıma hazırız. Bizim işimiz Web sitesi yapmak!
<p>Sizin de sitenizi yapalım.
<p><p><center><a href="sayfa1.asp">Size de yardımcı olalım</a></center></font>
</td></tr></table></center>
</BODY></HTML>
Bu sayfamızda verdiğimiz mesajı beğenen m&#252;stakbel m&#252;şterilerimiz, sayfadaki k&#246;pr&#252;y&#252; tıklayarak, nereye gidecekler? Şu aşağıdaki kodun yer aldığı sayfaya. Bunu da sayfa1.asp adıyla kaydedin:
<% @Language = VBscript %>
<HTML>
<HEAD>
<TITLE>Web Sitesi Yapilir</TITLE>
<META http-equiv="content-type" content="text/html; charset=ISO-8859-9">
<META http-equiv="Content-Type" content="text/html; charset=windows-1254">
</HEAD>
<BODY bgcolor=darkorange text="white" language=Turkish>
<br><br><br><br><br><center><table width="250"><tr><td>
<font face="arial" size="6">Arzu ettiğiniz siteyi s&#252;r'atle oluşturabiliriz.<p>&#214;nce
nasıl bir site istediğinizi ve grafik malzemenin durumunu belirtin?</font> </P>
</td></tr></table>
<p><p><table width="500">
<form action="sayfa2.asp" method="get">
<TBODY><tr><td width="500" align="middle">
<p><!--#include file="siteler.inc"-->
Kullanılacak grafik malzemenin durumu: <!--#include file="grafikler.inc"--><br>
<br><br><br><p><input type="submit" value="G&#246;nder" align="left"></p>
</td></tr></form></TBODY></table></center>
</BODY>
</HTML>
“Bu sayfada ASP tekniği kullanmayı gerektiren hemen hemen hi&#231; bir &#246;ge yok!” diyebilirsiniz; ama demeyin. İki haric&#238; dosyayı #include yoluyla sayfaya eklediğimizi g&#246;ruyor musunuz? Bu sayfanın b&#252;t&#252;n işlevi işte bu iki dosyada gizli!
siteler.inc ve grafikler.inc, veritabanından veri &#231;eken ve bunu getirip yukarıdaki yerlere yazmakla g&#246;revli olacaklar. &#214;nce siteler.inc’i yapalım:
<%
'Siteler tablosundan siteAdi s&#252;tunundaki bilgileri al.
SQLSITE = "SELECT siteAdi, siteNO FROM Siteler"
set connsite = server.createobject("ADODB.Connection")
connsite.open "web"
set siteler=connsite.execute(SQLSITE)
%>
<select name="siteNO">
<% 'Listedeki her kayit i&#231;in su isi yap. %>
<% Do while Not siteler.eof %>
<Option value = "<%= siteler(1) %>"><%= siteler(0) %></Option>
<%siteler.MoveNext
Loop%>
</select>
<% siteler.close %>

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet reklamver