cxGrid çok yavaş ?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

cxGrid çok yavaş ?

Mesaj gönderen hi_selamlar »

S.A. arkadaşlar.

cxgrid v4.23 kullanıyorum. yazdığım programda local de çalışınca hiç sorun yok. fakat aynı anda diğer teminalde açılınca terminal programı resmen ölüyor. yani veriler üzerinde hareket edince çok yavaş hareket ediyor.

acaba bunun sebebi ne olabilir. cxGrid Draw olayında fast veya veryfast deme şansımız varmı. acaba 6.xxx veriyonunda bu sorun aşılmışmıdır.

bilen bir arkadaşımız bilgi verirse çok sevinirim. lütfen. bunu hızlandırmanın nasıl bir yolu var..

teşekkür ederim.
Herkes cahildir, bazi konularda.
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

verdiğiniz bilgiler eksik yada yanlış. cxgrid normaldede yavaştır çünkü bilgileri hafızaya alması için belli zaman gerek. bir parametre ile bunu önlemek mümkün. ancak o zamanda cxgridin üstün özllikleri kırkılmış kuşa fdönüğyor. önerim forma tüm kayıtları yüklemeyin sadece işinizi görenleri select ile alın
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
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Mesaj gönderen adnansirca »

(Forumdan freeman35 yazmış...) cxGrid sadece bir grid değildir. Yani cxgrid ile db lerde işlem yapılacaksa, cxgrid üzerinde yapılmalı, çünkü önce cxgrid sonra db senkron edilir. Hatta hız kazansın diye bu senkronu iptal de edebilirsiniz. .......
-------------------------------
Aslında forumda bu konu ile ilgili arama yaparsanız cevabı bulacağınızı tahmin ediyorum.
Bunun yanısıra cxGridDBTableView-->>DataController-GridMode değerini False yapmanızı tavsiye ederim...
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

@asirca

zaten otomatik sıralama filtreleme vs parametre ile kapatılırsa cxgrid kullanmanın çok bir karı kalmıyor bence ne dersin ?
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
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Mesaj gönderen hi_selamlar »

S.A.

hocalar teşşekür ederim yorum ve bilgileriniz için.

hocam bütün bilgiler direkt olarak ekrana gelmek zorunda. yani bütün bilgiler kullanılmak zorunda. mecburum yani. :oops:

acaba

Kod: Tümünü seç

DataController > GridMode = False 
yapılınca hız artarmı. artarsa ne gibi sakıncaları olabilir. eğer bilginiz var ise ve paylaşırsanız sevinirim.

teşekkürler.

S.A.
Herkes cahildir, bazi konularda.
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Mesaj gönderen adnansirca »

ikutluay yazdı:@asirca

zaten otomatik sıralama filtreleme vs parametre ile kapatılırsa cxgrid kullanmanın çok bir karı kalmıyor bence ne dersin ?
Size katılıyorum.
Ancak özellikle Server-Client arasındaki hız sorununu en aza indirgemek için bir takım özelliklerin kapatılması vb.. öneriler bileşen setinin kendi sitesinde de mevcut çözümler olarak gösterilmiştir.
Asıl olan tüm özellikleri kullanabilmektir. Herkes farklı çözümler üretebilir. Örneğin ben hız sorununu engellemek için Firebird kullanmaya gayret ediyorum ama bu da bazen çözüm olmayabiliyor.
Bununla birlikte filtreleme, sıralama vb. özellikleri kapatmak yerine bileşenin kendi içerisindeki mevcut özellikler kullanarak da aynı işlem yapılabilmektedir. Görsel açıdan bazen beni tatmin etmese de ben bu özellikleri de kullanmaktayım.
DataContoller--GridMode değeri false olursa bu özellikleri kullanabiliyorsunuz. Ancak bu değer true olarak işaretlenirse sıralama vb. işlemleri kodlarla yapmanız gerekmektedir.
Ben bu değerin false olarak işaretlenmesinden yanayım......
Sanırım kısmen de olsa benimle aynı düşüncedesiniz.....
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Mesaj gönderen adnansirca »

hi_selamlar yazdı:S.A.

hocalar teşşekür ederim yorum ve bilgileriniz için.

hocam bütün bilgiler direkt olarak ekrana gelmek zorunda. yani bütün bilgiler kullanılmak zorunda. mecburum yani. :oops:

acaba

Kod: Tümünü seç

DataController > GridMode = False 
yapılınca hız artarmı. artarsa ne gibi sakıncaları olabilir. eğer bilginiz var ise ve paylaşırsanız sevinirim.

teşekkürler.

S.A.
Kendi projelerimde bu değeri False olarak işaretlediğimde belirgin bir hız artışı olduğunu görebilmekteyim.
Bu arada kulandığınız veritabanı hangisiydi acaba......Buna göre bir çözüm üretelim hep birlikte....
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Mesaj gönderen hi_selamlar »

adnansirca yazdı: Kendi projelerimde bu değeri False olarak işaretlediğimde belirgin bir hız artışı olduğunu görebilmekteyim.
Bu arada kulandığınız veritabanı hangisiydi acaba......Buna göre bir çözüm üretelim hep birlikte....
S.A.

hocam farklı bir VT kullanıyorum. SQL değil. Paradox veya DBF de değil.
farklı. ;)

cxgrid de aynı verileri çekiyorum çok ağır. fakar normal DBGrid ile çektiğimde veriler uçuyor.

GridMode = True yapınca bütün filtreleme, sorting işlemleri v.s. iptal ediliyor. peki bu işlemleri nasıl yapabilirim. manuel olarak. ?

tecrübenizi paylaşmanızı bekliyorum...


Teşekkürler.

S.A.
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Mesaj gönderen hi_selamlar »

GridMode = True yapınca bütün filtreleme, sorting işlemleri v.s. iptal ediliyor. peki bu işlemleri nasıl yapabilirim. manuel olarak. ?

projeyi bitirdik adama verdik.. bitti diye de çok sevinmiştik. cxgrid program için bir artı idi.

şimdi gridmode = ture yapınca bütün işlemler iptal oluyor. bu işlemleri
manuel olarak nasıl yapabilirim.

:oops: :oops: :oops: :oops: :oops: :oops:

S.A:
En son hi_selamlar tarafından 07 Kas 2007 05:41 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Herkes cahildir, bazi konularda.
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Mesaj gönderen adnansirca »

:) hi_Selamlar
Dediğiniz gibi GridMode := True değeri alaınca Filtering,Sorting ve Summry işlemleri yapılamamktadır. Bunları kendi kodlarınla halledebilirsin.
Filtering :
1-Kullandığın veritabanına ve dile uygun olarak normal bir sorgulama yöntemi ile bu işlemi yapabilirsin. Sorgu neticesi her halukarda Gride yansıyacaktır. İpucu : insearch değerini true yapın....
2-viewtopic.php?t=20559&highlight=cxgrid+sorting
Sorting : Bu forumda örneği daha önce verilmişti. Bulabilirsem gönderirim.
Summry: Bu işlem için de sql-sum kullanarak sonuçları Statusbar veya panel veya label kullanarak yansıtabilirsiniz.
Arayüz olarak benzerlik yaratmaya çalışabilirsiniz.
Kısacası Delphi nin kendi dbGrid i için yaptığınız işlemlerle neredeyse benzer işlemler yapıyorsunuz. Burada sizi uğraştıracak konu Column.Name ve Column.FieldName gibi değerlere nasıl ulaşacağınızdır. Burada bu değerlere ulaşırken kod ile cxGridDBTableView i kullanmayı ihmal etmeyin.

Sorunuza bu şekilde cevap verebilirim ancak. Çünkü bahsi geçen konular çok geniş aslında ve farklı farklı çözümler üretilebilir.
Bir kaç kod yazıp deneyin ve daha sonra kodunuzu burada yayınlayın. Böylece size daha iyi yardımcı olunur.
İyi çalışmalar.
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

cxgridin yaptığı işlerin birçoğunu ehlibde yapıyor ve oldukça hızlı. ancak arada senin dikkat etmediğin şu, cx tüm veriyi yüklerken normal dbgrid adece senin gördüğün kısmı yükleyip kurnazlık yapıyor
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
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Şimdi iş cxGrid veya abcGrid olayı filan değil. Çektiğiniz verinin boyutu esas olan. Eğer siz yerel bir sistemde çalıştırıyosanız Ağ iletişimi olmayacağından çok daha hızlı bir erişim sağlayabilirsiniz. Ama ağ üzerinden bir uçbirimde bağlantı yapıyorsanız iş değişir.

Bunu şu şekilde deneyebilirsiniz. Ekrana gelen TQuery veya Eğer Kullanıyorsanız TTable nesnesinin tamamının belleğe yüklenmesi için FetchAllRows'unu true yapın. Öyle bir sorgu gerçekleştirin, bir de FetchAllRows'unu False edip sorgu gerçekleştirin.

Farkı göreceksiniz.

E bunu bir de Grid'lerin kullanabilmesi için ayrıca belleğe yükleyip NODE'lar oluşturduğunu düşünürseniz vakit alacaktır.

cxGrid Delphi'nin Query veya Table nesnelerinin bilgileri yüklemesi dışında ayrıca kendisi de node'lar oluşturup bilgiyi kendine çeker.

Bilginiz olsun.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

cx gridin filterini deniyordum. arkada başka girddide vardı. cx grid filtreliyken diğer gridde tüm kayıtlar duruyordu oysa bana gerejken filtreli kayıtları sırayla döngüde işlemekti. bende filtreyi kod ile yaptım.
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
Cevapla