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.
Dbgridde 1.000.000 kayıt göstermek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Dbgridde 1.000.000 kayıt göstermek
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.
- 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
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. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Dbgridde 1.000.000 kayıt göstermek
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.
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.