Merhaba arkadaşlar,
biraz genel bir soru olacak ama genel bir çözümünü bulabilirsem sanırım aynı türden hatayla bir daha karşılaştığımda daha kolay çözebileceğim. Sorum şu: Delphi hangi durumlarda
Merhaba, sanırım soruyu biraz daha özelleştirmem gerekiyor Mustafa Abi'nin de ifade ettiği gibi SQL cümlesini düzenlemek daha mantıklı bir çözüm olsa gerek.
toplamkredi:=qryPosOperasyon.SQL.Add('SELECT SUM(POSTUTARI) from POSOPERASYON WHERE ISLEMNO='+islemno.Text+' ');
seklindeki atama Sql calısmadıgından ne ise yarıyor
queryden tek kayıt dondugu zaman kayıt degerini mi veriyor
yani burada sum ile toplanan degerimi veriyor
hııımm Gökmen Abi sırf senin güzel hatırın için konuyu daha da özelleştireceğim
Abi şimdi asıl yapmak istediğim şu:
1.POSOPERASYON tablsonun POSTUTARI alanındaki değerlerin toplamını bulmak (tabii ISLEMNO alanına göre gruplandırarak; bir başka deyişle ISLEMNO'su aynı olan kayıtların ayrı ayrı toplamını bulmak )
2.Bulunan değeri ANA tablosunun KREDITOPLAMI alanına atamak (tabii yine ANA tablosundaki ISLEMNO alanını referans alarak)
Bu SQL cümlesi paradox'ta çalışır mı emin değilim ama eğer çalışırsa sanırım ihtiyacinizi çok daha kısa bir kod ile halletmiş olursunuz. Bu kod ANA tablosundaki bütün satirlar için KREDITOPLAM alanını POSOPERASYON tablosundaki ilgili ISLEMNO'lari ayni kayitlardaki toplamı ile günceller.
procedure TfrmKasaTutanak.DBGrid2Exit(Sender: TObject);
var
toplamkredi:integer;
begin
qryPosOperasyon.Close;
qryPosOperasyon.SQL.Clear;
qryPosOperasyon.SQL.Add('SELECT SUM(POSTUTARI) from POSOPERASYON WHERE ISLEMNO='+islemno.Text+' ');
qryPosOperasyon.Open;
toplamkredi:=qryPosOperasyon.Fields[0].AsInteger;
///qryAnaKREDITOPLAM.AsInteger:=toplamkredi; --> bu çalışırmı bilmiyorum :)
//ben olsam bir sql de buna yazarım :D
end;
ya Fahrettin Abi bunca işin gücün arasından (hele de şu IB Recover işi )zaman ayırdığınız için çok teşekkür ederim. Abi kodu söylediğiniz gibi yazdım çalışınca
bu arada dikkatsizliğimden kaynaklanan bir nezaketsizlik olmuş Naile Hocam'a, Gökmen Abi'ye ve Admin Mustafa Abi'ye de katkılarından dolayı teşekkür etmem gerekirdi. Dediğim gibi dikkatsizlikten oldu önce özür diliyor; akabinde çok teşekkür ediyorum
Estagfirullah...
kod aynen benim yazdigim sekilde ise subquery desteklenmediginden calismamis olabilir.
bir de kodu delphi icinden degil de oncelikle sql explorer'dan filan deneyip verdigi hataları orada ayikladiktan sonra delphi koduna donusturmede fayda olur. Bu sekilde calistirmayi basaramiyor iseniz eger ilgili iki tablo eger cok buyuk degilse e-mailime atin bir de ben deniyeyim. Boylece subquery desteginden de emin oluruz...