ana sayfa | makaleler | kodlar | hakkında | cv | referanslar | iletisim
 

asp için sss

biz asp’cilere  bazı sorular o kadar çok sorulur ki artık cevaplamaya usanırsınız. asp’ye her yeni başlayan insanın takıldığı ve bir çoğunun asp öğrenimini kesmesine neden olan bu hatalardan bazılarına bu ay parmak basıp, çözüm üretmeye çalışacağız.

havaların iyice ısındığı şu mayıs ayında bizde asp ile olan münasebetlerimizi iyice ısıtıyoruz. bu ay aslında çok basit olan ama en çok sorun çıkan iki konuya derince parmak basacağız, asp ile access veritabanı bağlantısı ve veri sayfalama (db paging) …
asp ile belli bir yol kat ettikten sonra txt bazlı veri kayıt tekniklerinin size yetmediğini fark edeceksiniz. sonra hemen araştıracaksınız başka ne olabilir diye, ve karşınıza access diye bir şey çıkacak ve siz bir hevesle access edinip başlayacaksınız çalışmalara, aslında çok basit gibi duran bir işlemin nasıl saç baş yolduracağına canlı canlı şahit olacaksınız.
bu ay ilgileneceğimiz diğer konu ise veri sayfalama, aslında o da access ile ilişkinizin başlamasından sonra karşınıza çıkacak. bir çok kullanıcının takıldığı bir konu olan veri sayfalamanın da aslında ne kadar basit olduğunu okudukça görecek ve şaşıracaksınız.
bu ayki yazımızda benim örneklerimde kullandığım veritabanımı size tanıtayım önce. veritabanımın adı ilk_ay.mdb, veritabanım içinde aylar adında bir tablo barındırıyor. tablom da sırası ile ay_no (otomatik sayı) ve ay_ad (metin) isimli iki alan içeriyor.

eğer veritabanınızı yarattı iseniz sıra geldi demektir kodlara. asp ile access veritabanına bağlanmak için 3 yol var. bunlardan 2 tanesi dsn-less adını verdiğimiz tür bağlantı, diğeri ise dsn’li bağlantı. peki biz bunlardan hangisini seçeceğiz? aslında uzun zamandır asp’ciler arasında tartışılan bir konu bu. acaba dsn-less’ler mi daha iyi yoksa dsn’li bağlantılar mı? tam kesin bir cevap verilemese de ben her zaman dsn-less tarzı bağlantıyı seçmişimdir. benim fikrime göre dsn-less daha hızlı ve sunucu bilgisayarı daha az yoruyor…
ben kodlar içinde 3 tür bağlantı içinde kodları yazacağım ama kullanacağım yani bizi veritabanına bağlayacak olan kodların önünde yorum işareti (‘) olmayacak.diğerlerinin önünde ise bu kodlardan bulunacak…

<html>
<head>
<meta http-equiv="content-language" content="tr">
<meta http-equiv="content-type" content="text/html; charset=windows-1254">
<tıtle>asp ile veritabanı</tıtle>
</head>

<body>
<%
' ilk önce veritabanımızın yerini belirleyelim
' bu belirleme dsn-less türevi bağlantılar için gereklidir.
' veritabanınızın yerini fiziksel yol ( c:/inetpub/..) şeklinde belirtebileceğiniz gibi
' sanal yol ile de belirtebilirsiniz ki biz şu an onu kullanacağız
' veritabanım ile .asp sayfalarım aynı klasörde olduğu için aşağıdaki kod işime yarar
veritabanim_yer = server.mappath("ilk_ay.mdb")

set baglanti = server.createobject("adodb.connection")
' d s n - l e s s   t ü r e v i  b a ğ l a n t ı l a r
' 1. ...
baglanti.open "dbq="& veritabanim_yer &";driver={microsoft access driver (*.mdb)}"
' 2. ... jet ole db bağlantısı
'           baglanti.open "provider=microsoft.jet.oledb.4.0;data source="& veritabanim_yer

' d s n ' l i   b a ğ l a n t ı l a r
' bu tür bir bağlantı için sistemde bağlantının tanımlı olması gerekir
' ben baglan isimli bir bağlantı tanımladım ve kullanıyorum
'           baglanti.open "baglan"

' şu anda bir sorun yoksa veritabanına bağlandık sıra tabloya bağlanmaya geldi

set rs = server.createobject("adodb.recordset")
rsql = "select * from aylar order by ay_no asc"
rs.open rsql, baglanti, 1, 3

' eğer hala bir sorun yoksa tabloyada bağlandık.
' yolumuza devam edelim ve verileri alalım..

do while not rs.eof ' verilerin sonuna kadar
response.write "ay adı: <b>"
response.write rs("ay_ad")
response.write "<br></b>"
rs.movenext
loop

rs.close
set rs = nothing

baglanti.close
set baglanti = nothing
%>
</body>
</html>

yukarıdaki kodları yazıp web sunucunuzda bir klasöre kaydediniz. yalnız veritabanınız ile aynı klasörde olması gerektiğine dikkat ediniz. eğer ikisini aynı yerde tutamıyor sanınız kodlarda gerekli ayarı yapmalısınız. kaydettikten sonra tarayıcınızın adres hanesine http://localhost/klasor/baglan.asp yazarak dosyayı çağırınız ve deneyiniz. şayet bir sorun yoksa aşağıdaki gibi bir çıktı almanız lazım.

aslında ne kadar basitmiş değil mi? saçınızı yolduran, sizi bu genç yaşta kel bırakan teknik aslında çok basitmiş.

dsn tanımlama…
yazımızda dsn denen bir şeyden bahsettik ve kodlarımızı yazdık. gördüğünüz gibi dsn ile bağlantı son derece basit gibi duruyor. peki bu dsn nedir? nasıl ayarlanır? dsn’i ayarlamadan önce sistemimizin buna yeterli olup olmadığını sınamamız gerekiyor. aşağıdakileri adım adım uygulayalım…

  1. eğer windows 2000 veya windows xp işletim sitemlerinden herhangi birinde çalışıyorsanız bu adımları uygulamanıza gerek yok, hemen geçebilirsiniz aksi takdirde bir kontrol etmenizde yarar var.
  2. denetim masası’nı açıp adı odbc, odbc32 veya “odbc veri kaynakları (32 bit)” adlı simgeyi bulup açın.
  3. açılan pencereden sistem dsn sekmesine tıklayın ve açılacak yeni penceredeki ekle düğmesini tıklayın.
  4. burada access, dbase, excel, foxpro, paradox sürücüleri 4.00.3711.08’den büyük mü yoksa değil mi? eğer değilse http://www.microsoft.com/data/ adresinden microsoft data access components’in son sürümünü yükleyin. son sürümü 2.7’dir.

bu küçük kontrolü yaptıktan ve şayet gerekiyorsa gerekli yükseltmeleri yaptıktan sonra  biz dsn tanımlamaya devam edebiliriz. dsn tanımlamada yukarıdaki kontrolün yapıldığı arabirimden yapılıyor. 4. adım’a kadar tekrar gelin ve buradaki listeden bağlantı kurmak istediğiniz veritabanı türünü seçiniz. bu genelde access olmakla beraber, excel veya foxpro da olabilir. buradan veritabanı türümüzü seçtikten sonra son / finish yazan düğmeyi tıklayın ve son penceremize gelin. buradaki alanları şekildeki gibi doldurup veritabanınızı seç / select diyip seçin ve “ok” düğmesini tıklatın. artık asp sayfalarınızdan dsn adı olarak yazdığınız isim ile veritabanınıza bağlanabilirsiniz.

sıra geldi bu verilerimizi belli sayılara göre sıralamaya.mesela siz aylarımızı mevsimlere göre sıralamak istiyorsunuz yani 3’erli 3’erli sıralamak amacındasınız. ama bu nasıl olacak bilmiyorsunuz. veya bazı kodlar buldunuz ama çalışmadı, çalışsa da istediğiniz gibi olmadı…
bu örnek içinde aynı veritabanını kullanacağım için tekrar açıklamayacağım. sadece yeni sayfanın kodlarını vereceğim biraz da açıklama. ilk örnekte biz veritabanından verileri ado’nun recordset nesnesi ile aldık ve ekrana yazdık. ama orada verileri alırken hiçbir kısıtlama yapmadık. verilerin hepsini bir defada almasını söyledik. oysa ki bu örneğimizde verileri 3’er 3’er alması konusunda recordset’e uyarıda bulunacağız.


<html>
<head>
<meta http-equiv="content-language" content=&q

 

maxiasp.net
maxiasp.com
evren ayan
yusuf öztürk
windowsclient.net
thewpfblog.com
msakademik.net
bildirgec
burak selim şenyurt
yazgelistir.com
cocuk.com

ffwinmobile
secim2007
pixelMaxi
db2class
filmhatalari
Tarihci



bu site bahadır arslan tarafından tasarlanmış ve kodlanmıştır