Merhaba
Mevcut kayıtları bir ızgarada listeleyip oradan seçim yaptırarak düzenletme, kolon gizle kaldır ile rapor gibi seçenek sunmak oldukça pratik oluyor diyerek genelde yapıyı bu şekilde kurmaya çalışıyorum. Ancak kullandığım ehlib veya quantum gibi gridler select * dediğinizde allah ne verdiyse tüm kayıtlara abanıyor. Oysa standard dbgrid böyle değil gözlemlediğim kadarı ile. yani logo tiger daki gibi ilk başta ekrana sığcak kadar mial 30 kayıt çekiyor adam en dibe inese luzumu kadr gene çekiyor.
Şimdi
1. Böyle bir yapıyı sunan component varmı grid olarak
2. Biz mevcut gridlerde bunu kodla nasıl yaparız.
Saygılar
Trafik Azaltma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Trafik Azaltma
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Re: Trafik Azaltma
Kullandıgınız veri tabanı SQLde LIMIT kullanmanıza izin veriyorsa (MySQL, PostgreSQL, SQLite gibi) SQL içinde LIMIT kullanarak istediğinizi yapabilirsiniz.
Mesela SELECT * FROM tablo LIMIT 5, 5 ile tablodaki 6, 7, 8, 9 ve 10. kayıtları gösterebilirsiniz.
MS SQL Server 2005 kullanıyorsanız ROW_NUMBER() ile bunu halledebilirsiniz.
Mesela SELECT * FROM tablo LIMIT 5, 5 ile tablodaki 6, 7, 8, 9 ve 10. kayıtları gösterebilirsiniz.
MS SQL Server 2005 kullanıyorsanız ROW_NUMBER() ile bunu halledebilirsiniz.
There's no place like 127.0.0.1
Re: Trafik Azaltma
Quantumgrid de gridmode diye bir özellik var. Gridview nun datacontroller inin altında gridmode u true yaparsan, tüm bilgileri yüklemez. Sadece ekranda görünen kadarını yükler, kayıtlarda ileri giderken geri kalanlar yüklenir.
Gridmode true yapılınca, grid in kendi filter, grouplama, sıralama gibi özelliklerini kullanılamaz. Bu işlemler için sql i kullanmak zorunlu hale gelir.
Genel olarak bu tür parçalı alma sırasında recordcount fonksiyonu kullanılırsa, gelen bilgi yüklenen kayıtlar kadar olacaktır. Fonksiyon gerçek kayıt sayısını vermeyecektir.
Gridmode true yapılınca, grid in kendi filter, grouplama, sıralama gibi özelliklerini kullanılamaz. Bu işlemler için sql i kullanmak zorunlu hale gelir.
Genel olarak bu tür parçalı alma sırasında recordcount fonksiyonu kullanılırsa, gelen bilgi yüklenen kayıtlar kadar olacaktır. Fonksiyon gerçek kayıt sayısını vermeyecektir.
Re: Trafik Azaltma
3.parti araçlar kendi içlerindeki özellikleri kullanabilmek için her seferinde db okumak yerine bir sefer okuyup işlemleri kendi üzerinde yapmayı isterler.sebebi bekletmeden olamayacak işlemler için bir sefer beklet.Ben devex kullanıyorum onda gruplama footer filtre kolonlara göre sıralama vs işlemlerini son kullanıcıya açarsanız bunlar tablo içeriğiyle alakalı olduğundan her işlem için select e yazılmış where sonuçlarına her seferinde okuyup uygulamakzorunda kalacaklardı.
Ben genelde uzun tablolarda raporlama yapacaksam kullanıcıya önce tarih aralığı vs gibi sonuçta dönecek satır sayılarını azaltacak bilgileri girmesini isterim,ticari yazılımlarda en çok tarih aralığı ve cari seçimi sorgu sonucunu azaltır,böylece 100,000 kayıt içinden 10,000 e düşebilir mesela,buda gridin performansını arttırır.
cxGrid okunan tüm kayıtları hafızaya alır,windowsda da hafıza bitti diye bir şey yok çünkü mutlaka gider sanal belleğe yani diske yazar,grid hafızayı kullanmak istediğinde diski kullanmış olursunuz buda nekadar çok hafıza okadar diske erişim ve zaman kaybı demek.
Yani tavsiyem yapmak istediklerinizi yani filtreler koymaya çalışıp dönecek kayıt sayısını azaltın,ayrıca şu select * işinden vazgeçin, field isimlerini yazın ve kullanmayacağınız hiç bir field ı select e eklemeyin
Askerliği yapanlar bilir, elektirik düğmelerinin üzerinde yazar hep "Kullanmıyorsan söndür"
Kolay gele
Ben genelde uzun tablolarda raporlama yapacaksam kullanıcıya önce tarih aralığı vs gibi sonuçta dönecek satır sayılarını azaltacak bilgileri girmesini isterim,ticari yazılımlarda en çok tarih aralığı ve cari seçimi sorgu sonucunu azaltır,böylece 100,000 kayıt içinden 10,000 e düşebilir mesela,buda gridin performansını arttırır.
cxGrid okunan tüm kayıtları hafızaya alır,windowsda da hafıza bitti diye bir şey yok çünkü mutlaka gider sanal belleğe yani diske yazar,grid hafızayı kullanmak istediğinde diski kullanmış olursunuz buda nekadar çok hafıza okadar diske erişim ve zaman kaybı demek.
Yani tavsiyem yapmak istediklerinizi yani filtreler koymaya çalışıp dönecek kayıt sayısını azaltın,ayrıca şu select * işinden vazgeçin, field isimlerini yazın ve kullanmayacağınız hiç bir field ı select e eklemeyin
Askerliği yapanlar bilir, elektirik düğmelerinin üzerinde yazar hep "Kullanmıyorsan söndür"

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!