Dbgridde 1.000.000 kayıt göstermek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
powertrk
Üye
Mesajlar: 27
Kayıt: 01 Eki 2008 12:02

Dbgridde 1.000.000 kayıt göstermek

Mesaj gönderen powertrk »

Veritabanı olarak Advantage kullanıyorum.
Tablomda 1.000.000 üzerinde kayıt bulunuyor. Boyut olarak 450 MB civarında yer kaplıyor.
Advantage kullanmamdaki sebep Full Text Search özelliği bulunması ve sorgularda diğer veritabanlarına göre en hızlı sonuçları döndürmesidir.
İlk sorunum arayüzümde bir dbgrid üzerinde tablomdaki kayıtları göstermek istediğim takdirde temp içinde tablomun boyutunda bir dosya oluşturuyor. 1 gb civarında boş disk alanı gerektiriyor. Bu kullanıcılar açısından hoş bir durum olmayacaktır.
Diğer sorunum ise kayıtların fazlalığından arayüzün gelmesi yada dbgride yüklenmesi birkaç dakika sürebiliyor.
Grid olarak Dxdbgrid kullanıyorum.(Cxgridin eski versiyonu) Bu giridin özelliği sayesinde kayıtları 1000'er 1000'er gösterebiliyorum. Fakat anladığım kadarıyla grid ilk yüklemede vtdeki tüm kayıtları alıp daha sonra parçalara bölüyor. Yada kayıtları hafızada tutup parti parti gösteriyor.
Query nesnemde nasıl bir düzenleme yapmalıyımki hem temp dosyası oluşmasın hemde arayüzüm daha kısa sürede görünsün.
Farklı bir grid yada çözüm önerisi olan arkadaşlar varsa tavsiyelerini duymak isterim.
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Dbgridde 1.000.000 kayıt göstermek

Mesaj gönderen Battosai »

Acaba bu kadar kaydı göstermenin amacı nedir ? Kullanıcının ne işene yarayacaktır ? Sorunuza gelecek cevaplar hep işlemin luzumsuzluğu yönünde olacaktır. Kayıtların lazım olduğu kadar VT den alınması tavsiye edilecektir. Zira doğru yöntemi budur.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Dbgridde 1.000.000 kayıt göstermek

Mesaj gönderen sabanakman »

Delphi üzerinde DBGrid'den başka Grid pek kullanmadım o yüzden ne gibi özelliklerle çalışırlar pek bilmem ama normal bir DBGrid bileşeni sadece gösterdiği kayıtları DataSet ten istemektedir. Sorgu sonucu 1 milyon kayıt olsa bile göstereceği 20 satır ise DataSet'ten 20 kayıt çeker. Tabi burada kilit nokta DataSet'in özellikleri ve yetenekleri. Kayıtların hepsinin birden gelmesini beklemek yerine ilk satırları gösterir ve kalanı da lazım oldukça veya arka planda getirecek şekilde bir özelliği var ise bunlara yönelebilirsiniz. Hoş, bu 1 milyon kaydın hepsini birden açma meselesi de ayrıca tartışılır.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: Dbgridde 1.000.000 kayıt göstermek

Mesaj gönderen emin_as »

Devexpress in grid bileşenleri dbgrid den ayrı olarak, gruplama - filtreleme - sıralama gibi özelliklere sahiptir. Bu özelliklerin dogru çalışması için tüm kayıtları okuması gerekiyor. Eğer bu özellikler kullanılmayacaksa, gridmode true yapılarak, normal grid gibi çalışması saglanabilir.

Bu arada 1.000.000 kaydın gridde veya başka bir bileşende gösterilmesi son derece anlamsızdır. Rapor gibi satır satır incelenmesi gereken durumlar dışında, bu kadar kayda kimse bakmaz. Gerekli olan kısmın gösterilmesi veya kullanıcıya görmek istediği kayıtları seçmesi saglanmalıdır.
Cevapla