Editor Login | Register
Ekle

Root > Akademik İnternet ® > ASP
ASP ile MS Access Verilerini Sayfalama - ASP - Akademik İnternet ® - Root
SonYolcu
(Relased 01.01.2008 21:30:39)
%4


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.


 
  width="245" bgcolor="#FFFBDF">Site Adı
  width="250" bgcolor="#FFFBDF">URL
 

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
%>

border"1" bordercolor="#C0C0C0" style="border-collapse:collapse; font:normal normal normal 11px verdana;" width="500">
 
width="5" bgcolor="#FFFBDF">S

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


 
 
 
 
  i=i+1
  Rs.
MoveNext
Loop
%>
  i=0
 
´Kayıtsetimizi bir sayfada gösterilecek kayıt sayısı adedince döndürelim.

 
Do While Not Rs.EOF And iPageSize
%>

 
align="center">"fldSiteAdi")%>href=""fldURL")%>" style="color:#0000FF" target="_blank">"fldURL")%>

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


 
 
 
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 " & s & """>" & s & " "
    Next
  End If

%>
 


  ´ 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...

    width="245" bgcolor="#FFFBDF">Site Adı   width="250" bgcolor="#FFFBDF">URL     i=0
 
´Kayıtsetimizi bir sayfada gösterilecek kayıt sayısı adedince döndürelim.   Do While Not Rs.EOF And iPageSize %>          MoveNext Loop %>    
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
%>
border"1" bordercolor="#C0C0C0" style="border-collapse:collapse; font:normal normal normal 11px verdana;" width="500">  
width="5" bgcolor="#FFFBDF">S
align="center">"fldSiteAdi")%>href=""fldURL")%>" style="color:#0000FF" target="_blank">"fldURL")%>
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 " & s & """>" & s & " "     Next   End If %> 
  ´ Bitti, hayırlı olsun... End If %>








Derecelendir
Kaynak SonYolcu Tarafından yazılmış/derlenmiştir.
İçerik İhbarı
Bağlantılar: bilgininefendisi.net

Open Source Document Project AUP&TOS