ASP ile MS Access verilerini sayfalama – Alıntı |
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, SQLSet 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.EOFThen ´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.EOFAnd 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…
|
Bir yanıt yazın