Arkadaşlar Firebird database IBX Bileşenleri ile bağlanıyorum.IBDataset tüm kayıtları fetch etmiyor sadece griddeki satır sayısı kadar fetch ediyor.Kullanıcının istediği kayıtlarıda aratarak getirtiyorum.Dolayısıyla maksimum 300-500 kayıdı çekiyorum yani kullanıcının aradğı şarta bağlı olarak.Ancak kullanıcı herhangi bir arama yapmadan DBGridin Scrollbarından aşağıya doğru sürüklerse FetchAll olayı meydana geliyor ve ister istemez bir yavaşlama oluyor.Bunu şu şekilde önlemeye çalıştım.DBGridin içeren formun ilk açılışına SQL de Where şartı ile bunu sınırlandırmaya çalıştım mesela ilk 1000 kayıt gibi.Bunda bir sorun olmuyor.Sonuçta ne yaparsa yapsın ilk 1000 den fazla kayıtı ilk planda çekemiyor ve aradığınada zaten aramalarla ulaşabiliyor.Ancak bu ilk 1000 şartını uygulamak istemiyorum.Acaba bu sorunun başka bir çözümü varmıdır.Değerli fikirleriniz için şimdiden teşekkürler.
Herkese kolay gelsin.
DBGrid ScroolBarın FetchAll Yapmasını nasıl engelleriz?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
DBGrid ScroolBarın FetchAll Yapmasını nasıl engelleriz?
En son NewMember tarafından 28 Ara 2005 02:03 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kod: Tümünü seç
IBDataSet1.FetchAll
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
@Alucard demişki:
Diyelimki dbgridde 10 satır var.İlk açılışta dataset 1 den 10 a kadar kaydı fetch yaptı.Kullanıcı bu grid scroollbarını 10 satır çekerse ise bu sefer dataset 10 kayıt daha çekip toplamda 20 kayıt çekmiş oluyor.(Eğer sona kadar getirrirse hepsini fetch ediyor).Burada şu olabilirmi.Dataset gene fetch ettiği kayıt sayısını 10 ile sınırlar ancak bu sefer bu 10 kayıt 10.kayıt ile 20.kayıt arasında ki kayıtlar olur.Ve kullanıcı gridin scrollbarıyla oynadıkça şarta uyan 10 kayıt çekilir ama bunların sıraları değişir.Yani hep ilk açılışta olduğu gibi griddeki satır sayısı kadar fetch yapılabilirmi? Yada başka bir çözüm.Teşekkürler.
Siz beni yanlış anladınız.Ben fetch all yapmasını istemiyorum.Yani tüm kayıtları çekmesin diyorum ancak kullanıcı dbgrid scrollbar ile sona geldiğinde dataset doğal olarak fetch all yapıyor.Mesela şu yapılabilirmi.Kod:
IBDataSet1.FetchAll
Diyelimki dbgridde 10 satır var.İlk açılışta dataset 1 den 10 a kadar kaydı fetch yaptı.Kullanıcı bu grid scroollbarını 10 satır çekerse ise bu sefer dataset 10 kayıt daha çekip toplamda 20 kayıt çekmiş oluyor.(Eğer sona kadar getirrirse hepsini fetch ediyor).Burada şu olabilirmi.Dataset gene fetch ettiği kayıt sayısını 10 ile sınırlar ancak bu sefer bu 10 kayıt 10.kayıt ile 20.kayıt arasında ki kayıtlar olur.Ve kullanıcı gridin scrollbarıyla oynadıkça şarta uyan 10 kayıt çekilir ama bunların sıraları değişir.Yani hep ilk açılışta olduğu gibi griddeki satır sayısı kadar fetch yapılabilirmi? Yada başka bir çözüm.Teşekkürler.
sql i sayfalama biçiminde çalıştır. Delphi de bu şekilde kullanmadım ama php ide sık olarak kullandığım bir yöntemdir...
mesala my sql için level 1, 20
firebird için select first 5 SKIP 20 alanadi from tablo vb... kullanabilirsin
Kolay gelsin...
mesala my sql için level 1, 20
firebird için select first 5 SKIP 20 alanadi from tablo vb... kullanabilirsin
Kolay gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.