Ancak sorun şu ki sorgu ilk çalıştırıldığında doğru sonuç veriyor ancak sonra ki her çalıştırıldığında, programı kapatıp açmadan yani bakiye 2360 TL artıyor.Bu 2360 TL nin bir mantığınıda kuramadım.Ama sonuç olarak programı kapatır ve tekrar çalıştırısam doğru hesaplıyor.
Aşağıda örne kod ve 3 kez orgu çalıştırıncaki sonuçların ekran görüntüsü var.
Yardımcı olabilirseniz sevinirim.
Teşekkürler.
Kod: Tümünü seç
procedure TFrmKasa.Verileritazele;
var AAA,BBB:string;
begin
AAA:='USER_TRANSACTION';
BBB:='bky#';
dm.KasaDataset.Close;
dm.KasaDataset.SelectSQL.Clear;
dm.KasaDataset.SelectSQL.Text :=
'SELECT KASA.*,coalesce(CAST(rdb$get_context('+QuotedStr(AAA)+','+QuotedStr(BBB)+
' )AS numeric(17,2) ),0) as BAKIYE,'
+'CAST(rdb$set_context('
+QuotedStr(AAA)
+','+QuotedStr(BBB)+',coalesce(CAST(rdb$get_context('+QuotedStr(AAA)+','+QuotedStr(BBB)+' )AS numeric(17,2) ),0)+ GIREN - CIKAN )AS numeric(17,2) )as SET_BAKIYE FROM KASA WHERE KASA.SIL=0';
dm.KasaDataset.Open;
end;