Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  (ing) Sayfalama, sayfa sayfa gösterme.

Yazılımda veritabanından kayıtların sayfa sayfa alınması ve gösterilmesi ile ilgili problem. Bu problem bazı RDBMSler ile kolayca çözülebilirken, bazılarıyla tam bir karın ağrısı haline gelmektedir.

Örneğin MySQL, PostgreSQL veritabanlarında select sorgunuzun sonunda limit 10, 20 dersiniz, sorgunun sonucu olarak onuncu kayıttan itibaren ilk yirmi kayıt döner. Bu implement etmesi kolay, nefis bir çözüm.

Örneğin SQL Server, Oracle gibi veri tabanlarında limit neyin yoktur, sorgunuzun where kısmında taklalar atarsınız, TOP falan gibi şeylerle muhatap olursunuz. Öeee bir çözüm.
fizikci
28 Haziran 2005 20:29 ~ 29 Haziran 2005 01:04
2.  Coderlar tarafından veritabanında kayıtların çekilmesi* esnasında dikkat edilmesi gereken bir durum.

Genellikle veritabanında tuttuğumuz kayıtlar fazladır.Bunları tamamını bir sayfada göstermek mantıklı değildir.Düşünsenize bir kitap sisteminiz var.Kitap listesini göstermek istiyorsunuz.Muhtemelen 1000lerce kitabınız olacaktır.Bir defada bunları getirmek hem DBMSnin timeout vermesi, hem network trafiğinin yavaşlığı nedeniyle uzun sürmesi babında pek tavsiye edilen bir yöntem değildir.Kullanıcıya* seçim imkanı tanımak, harf veya sayfa olarak belirli bir şarta göre sıralayıp getirmek gereklidir.

Yan tarafta bulunan başlıklar hem baş harfine göre hem de normal sayfa numarasına göre listelenebilmektedir.Her harf de kendi içinde listelenerek en verimli çözüm sağlanmış olmaktadır.

Bu mekanizmanın SQL Server içinde gerçeklenebilmesi için şöyle bir yöntem izlenebilir.Öncelikle sorguların parametrik hale getirilmesi her açıdan faydalıdır.O nedenle kimi parametreleri ayarlamak gerekir.pageSize diye parametremiz olsun ve bir sayfada gosterilen max kayıt sayısını göstersin.Sorgumuzun belli primary key alanına göre sıralı olması gerekir.Getireceğimiz kayıtlar içinden 1 alan primary key olsun.(Genellikle her tablo da bir tane primary key bulunur ve bu da Id olarak belirtilir.)lastRecordId diye başka bir parametremiz olsun ve sayfa içinde göstereceğimiz son kaydı tutsun.Bu bilgilere gore yapacağımız sorgu aşağıdaki gibi yapılabilir.

SELECT TOP @pageSize Id,Name,BookPageNumber
FROM Book
WHERE Id < @lastRecordId
ORDER BY Id DESC


Burada önemli olan her sayfa sonundaki son kayıdı bir yerde tutup "ileri" tuşuyla bir sonraki kayıtlara erişmek mümkün olmaktadır.Count fonksiyonu ile toplam kayıt sayısını alıp daha esnek sorgular da yapabiliriz.
mennan
29 Haziran 2005 10:47
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?

Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
© 2005, Bilişim Kulübü. (1171 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen