sum sorgusu

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
zengin
Üye
Mesajlar: 233
Kayıt: 06 Ağu 2003 10:13

sum sorgusu

Mesaj gönderen zengin »

S.A.
veritabanı FB 1.5
arkadaşlar fatura alanını gözönüne alabilirsiniz. bu tipteki bir yapıda miktar ve fiyat alanları değiştiğinde tutar hanesinin hesaplanması ve hemen akabinde tutar toplamının belirlenmesi. ben bu işi 2 adet dataset ile çözdüm ancak sum işlemi sadece form açılışlarında gerçekleşiyor. DBgriddeki değerler değiştiğinde select sorgusunu yapmama rağmen sum işlemi gerçekleşmiyor. tabi bu işlemin gerçekleşmemesini fb nin anında kayıtları vt ye yazmaması olarak düşünübiliriz. ancak miktar ve fiyat field lerinin oncahnge olaylarına önce transaction commitretaining kodunu hemen arkasına da sum sorgusunu yazıyorum ancak bişey değişmiyor. bu işlemi kalasik top := top + IBDataset1Fiyat.ascurrency işlemi ile yapıyorum ancak kayıtların milyon hanede olduğunu düşünürsek bu işlemin zaman açısından sorun çıkaracağı kanatindeyim. field lerdeki değişim sonucunu sum ile nasıl sağlarız.
Zengin
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

Böyle olaylarda kademeli olarak gitsen daha iyi olur.BreakPoint koyarakta yapabilirsin.Yani ilk önce değişikliğin veritabanına uygulandığından emin olmalısın,gerçekten kayıt yapıyor mu.Ibexpert'e bakarak öğrenebilirsin vs. .Toplamı grid de gösteriyorsan,sorgu çektiğin dataset'i close,open yapmalısın. Yani gride IBQuery1 bağlı diyelim..

Kod: Tümünü seç

With IBquery1 do
begin
  Sql.Clear;
  SQL.Add('select Sum(Tutar) as ToplamTutar from TabloAdi');
  Close;
  Prepare;
  Open;
Label1.Caption:=IBQuery1.FieldByName('toplamTutar').AsFloat;
//Grid kullanmıyorsan direk bir labele de aldırabilirsin...
end;
Bu aşamalardan sonra ,sorun çıkmasının hiç bir nedeni yok(M$ durumları hariç) :D

iyi günler...
zengin
Üye
Mesajlar: 233
Kayıt: 06 Ağu 2003 10:13

Mesaj gönderen zengin »

kardeş dediğin işlemler gerçekleşiyor zaten elbette vt ye kayıt yapıyor. ancak 2 datasetin aynı tablelere bağlanması bu aşamada sorun çıkarıyor olabilir. close open metotlarıda bir işe yaramadı. kaldıki select ifadedisinin tekrar yazılması esnasında zaten close open oluyor. bence de anlamsız ancak mutlaka bir sebebi vardır diye düşünüyorum.
Zengin
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,

Siz bu alanları Calc alanı olarak mı tanımladınız acaba :idea:

ama belirttiğiniz şekilde böyle tanımlanmamış yinede belirteyim dedim.

bence sum fonk. düzgün çalışmaması için bir neden gözükmüyor.

sorun u aşama aşama çözmenizde fayda var.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Cevapla