Arkadaşlar saygılar selamlar diliyorum hepinize. accesde yaptığım ve istediğim gibi çalışan kodlar firebirdde yanlış çalışıyor. insert into ile oluşturduğum tablomda kullanıcı db girdi kullanrak istediği alanları editlyecek değiştirecek. kdv eklme, iskonto, gibi kısımlar. sonra butona tıklayınca yeni değerlere göre tüm verileri yeniden hesaplayacak hepsi bu. accesde çok güzel çalışıyordu. firebirdde çalıştıramdım. firebirdde kayıt sayısınca ilk kayıt çıkıyor işlem sonucu. anlamadım gitti. alanlar, tablo ve pas dosyaları bile aynı. kodlar aşağıdadır.
VAR
A:iNTEGER;
begin
[b]/// değişikliği önce kaydettiriyorum. editlemeleri [/b]
dm.fatura_query.Post;
dm.fatura_query.Close;
With dm.fatura_query do begin
Close;
SelectSQL.Clear;
SelectSQL.Add('select * from FATURA ');
Active:=true;
end;
With dm.fatura_query do begin
First;
for a := 0 to dm.fatura_query.RecordCount do begin
Edit;
dm.fatura_queryTOPLAM.AsCurrency:=(DM.fatura_queryADET.AsFloat*DM.fatura_queryMIKTAR.AsCurrency); //DEĞİŞİKLİĞE GÖRE TOPMAI YENİDEN HESAPLAR
dm.fatura_queryKDV_TUTARI.AsCurrency:=dm.fatura_queryTOPLAM.AsCurrency*dm.fatura_queryKDV.AsInteger/100; // YANSİYAN KDV TUTARI
dm.fatura_queryISKONTO_TUTARI.AsCurrency:=dm.fatura_queryTOPLAM.AsCurrency*dm.fatura_queryISKONTO.AsInteger/100; // YANSIYAN İSKONTI TUTARI
dm.fatura_queryFATURA_TOPLAM.AsCurrency:=(dm.fatura_queryTOPLAM.AsCurrency-dm.fatura_queryISKONTO_TUTARI.AsCurrency)+dm.fatura_queryKDV_TUTARI.AsCurrency; // FATURADA GÖRÜNECEK TOPLAM TUTAR
dm.fatura_query.Post;
Next;
end;
//
end;
With dm.fatura_query do begin
Close;
SelectSQL.Clear;
SelectSQL.Add('select * from FATURA where onay=1 order by tarih');
Active:=true;
end;
kodlar bunlar... hatta posttan sonra commit yaptım olmadı, CommitRetaining yaptım yine olmadı. Not: Kodlarımızı code tagı içerisine alalım.
Yazdığın kod da ben commit göremedim. Query i post işlemi yaptığın döngüden sonra query i close etmişsin. Buda işlemi rollback eder. Tabi buda kullandığın bileşen le doğru orantılı. BUrda tahminim UpdateSQL de sorunun var. orayı kontrol et bence.
Ayrıca değişken kullanmak yerine function kullan "dm.fatura_queryTOPLAM.AsCurrency" --> dm.fatura_query.FieldByName('TOPLAM')..AsFloat gibi. Bu sorun bu yüzden demek değil, öneri.
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak... Zoru başarırım, İmkansız zaman alır FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!