For döngüsü ile editleme yapamıyorum

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
baloglurecep
Üye
Mesajlar: 261
Kayıt: 21 Tem 2006 04:59
İletişim:

For döngüsü ile editleme yapamıyorum

Mesaj gönderen baloglurecep »

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.

Kod: Tümünü seç

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.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: For döngüsü ile editleme yapamıyorum

Mesaj gönderen freeman35 »

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 !!!
Cevapla