// Üye Girişi
E Posta:
Şifre:
// 9 Eylül 2010

• Anasayfa
• Fonksiyonlar
• Makaleler
• Forum
• En yeniler
• En popülerler
• En Beğenilenler
• Reklam
• İletişim

 Asp Dünyası // Makaleler // ASP ile MS Access verilerini sayfalama

MS Access veritabanından gelen verileri sayfalamak, MySQL veritabanına oranla çok daha basittir. Bu basitliğin nedeni Recordset nesnesi tarafından desteklenmesinden kaynaklanmaktadır. Bu yazımda sizlere MS Access vertabanından gelen verileri, Recordset nesnesini kullanarak sayfalama konusundan bahsedeceğim. Aşağıdaki kodlardan faydalanmak için sniper.mdb.zip dosyasını indirip kodlarla aynı dizine eklemeniz gerekmektedir. Lafı fazla uzatmadan hemen kodlara giriyorum.
Öncelikle her zaman olduğu gibi değişkenlerimizi tanımlıyoruz, bağlantı ve Recordset nesnemizi açarak sayfalamak istediğimiz verilerimizi çekiyoruz:

Option Explicit
Dim Bag, Rs, i, s, Sayfa, SQL

Set Bag = Server.createObject("ADODB.Connection")
Set Rs = Server.createObject("ADODB.Recordset")

Bag.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("sniper.mdb")

SQL = "select * FROM tblSiteler"
Rs.Open SQL, Bag, 1, 3

Bağlantımızı açtıktan sonra kayıt setimizden veri dönüp dönmediğini kontrol etmeliyiz. Bu sayfalama kodunda kullanacağımız Recordset nesnesinin AbsolutePage özelliğinin hata vermemesi için önemlidir. AbsolutePage özelliği, kayıtsetine hangi sayfada olduğumuzu söyleyen kontrolümüzdür. Kontrolümüzü yaptıktan sonra nesnemizin PageSize özelliğiyle bir sayfada görüntülenecek kayıt sayısını belirleyip tablomuzu sayfamıza çizdiriyoruz.

<%
If Not Rs.EOF Then
´Bir sayfada gösterilecek kayıt sayısını belirliyoruz
Rs.PageSize = 2

´Eğer QueryString´de sayfa değişkeni tanımlanmışsa
If Request.QueryString("s") <> "" Then
´Bulunduğumuz sayfayı bu değişkenin değeri olarak atayalım
Sayfa = CInt(Request.QueryString("s"))
Else
´Değilse başlangıç sayfa numaramızı 1 olarak atayalım
Sayfa = 1
End If

´ ve Kayıtsetimize hangi sayfada bulunduğumuzu söyleyelim.
Rs.AbsolutePage = Sayfa
%>

<table border"1" bordercolor="#C0C0C0" style="border-collapse:collapse; font:normal normal normal 11px verdana;" width="500">
<tr>
<td width="5" bgcolor="#FFFBDF"><b>S</b></td>
<td width="245" bgcolor="#FFFBDF"><b>Site Adı</b></td>
<td width="250" bgcolor="#FFFBDF"><b>URL</b></td>
</tr>


Şimdi elimizdekileri verileri, bir sayfada gösterilecek kayıt sayısınca sayfamıza bastıracak olan döngümüzü yazıyoruz:

<%
i=0
´Kayıtsetimizi bir sayfada gösterilecek kayıt sayısı adedince döndürelim.

Do While Not Rs.EOF And i<Rs.PageSize
%>

<tr>
<td align="center">
<%=i+1%>
</td>
<td><b>
<%=Rs("fldSiteAdi")%>
</b></td>
<td><a href="
<%=Rs("fldURL")%>
"
style="color:#0000FF" target="_blank">
<%=Rs("fldURL")%>
</a></td>
</tr>
<%
i=i+1
Rs.MoveNext
Loop
%>



Veriler istediğimiz sayıda sayfaya yazıldı. Şimdi sıra sayfa numaralarını linklendirmeye geldi:

<tr>
<td colspan="3" align="right">
<%
´ ve son olarak ta sayfaların linklerini sayfamıza bastıralım.
If Rs.PageCount > 0 Then
For s=1 To Rs.PageCount
Response.Write "<a href=""?s=" & s & """>" & s & "</a> "
Next
End If
%>

</td>
</tr>
</table>
<%
´ Bitti, hayırlı olsun...
End If
%>



Ms Access ile sayfalama işlemi bu kadar basit. Kaliteli sitelerde kullanmanız dileğinde bulunduktan sonra yazımı kodların tamamıyla kapatıyorum...

<%
Option Explicit
Dim Bag, Rs, i, s, Sayfa, SQL

Set Bag = Server.createObject("ADODB.Connection")
Set Rs = Server.createObject("ADODB.Recordset")

Bag.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("sniper.mdb")

SQL = "select * FROM tblSiteler"
Rs.Open SQL, Bag, 1, 3

If Not Rs.EOF Then
´Bir sayfada gösterilecek kayıt sayısını belirliyoruz
Rs.PageSize = 2

´Eğer QueryString´de sayfa değişkeni tanımlanmışsa
If Request.QueryString("s") <> "" Then
´Bulunduğumuz sayfayı bu değişkenin değeri olarak atayalım
Sayfa = CInt(Request.QueryString("s"))
Else
´Değilse başlangıç sayfa numaramızı 1 olarak atayalım
Sayfa = 1
End If

´ ve Kayıtsetimize hangi sayfada bulunduğumuzu söyleyelim.
Rs.AbsolutePage = Sayfa
%>

<table border"1" bordercolor="#C0C0C0" style="border-collapse:collapse; font:normal normal normal 11px verdana;" width="500">
<tr>
<td width="5" bgcolor="#FFFBDF"><b>S</b></td>
<td width="245" bgcolor="#FFFBDF"><b>Site Adı</b></td>
<td width="250" bgcolor="#FFFBDF"><b>URL</b></td>
</tr>
<%
i=0
´Kayıtsetimizi bir sayfada gösterilecek kayıt sayısı adedince döndürelim.

Do While Not Rs.EOF And i<Rs.PageSize
%>

<tr>
<td align="center">
<%=i+1%>
</td>
<td><b>
<%=Rs("fldSiteAdi")%>
</b></td>
<td><a href="
<%=Rs("fldURL")%>
"
style="color:#0000FF" target="_blank">
<%=Rs("fldURL")%>
</a></td>
</tr>
<%
i=i+1
Rs.MoveNext
Loop
%>

<tr>
<td colspan="3" align="right">
<%
´ ve son olarak ta sayfaların linklerini sayfamıza bastıralım.
If Rs.PageCount > 0 Then
For s=1 To Rs.PageCount
Response.Write "<a href=""?s=" & s & """>" & s & "</a> "
Next
End If
%>

</td>
</tr>
</table>
<%
´ Bitti, hayırlı olsun...
End If
%>



Bu makaleyi 651 kişi okudu.

Aspdunyasi.com© 2006 - 2007
Aspdunyasi.com Dizaynist.com ürünüdür.
Sitemize editör, ziyaretçi ya da üyelerimiz tarafından eklenen hiç bir veriden ayrıca tüm diğer site linklerinden,Aspdunyasi.com sorumlu değildir.