Query1 Toplamda Hata !!

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Query1 Toplamda Hata !!

Mesaj gönderen ozcank »

Arkadaşlar şöyle bir kodum var ve toplam aldırırken hata veriyor yardımcı olursanız sevinirim.
Hata :" Is Not a valid floaiting point value" bu hatayı alıyorum.
Label3 Olan satırı kaldırınca hata vermiyor sadece orda takılıyor.

Kod: Tümünü seç

procedure TForm28.Button1Click(Sender: TObject);
Begin
Query1.Sql.Clear;
Query1.Sql.Add('Select * From ROKAYIT');
Query1.Sql.Add('Where ROMONTAJTAR Between :ILKM5TAR AND :SONM5TAR');
Query1.ParamByName('ILKM5TAR').AsDate:=DateTimePicker1.date;
Query1.ParamByName('SONM5TAR').AsDate:=DateTimePicker2.Date;
Query1.Open;
Label3.Caption:=FormatCurr('##,###,###,###',StrToFloat(Query1ROGENELTOPL.AsString));
Query1.refresh;
end;
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Kod: Tümünü seç

Query1ROGENELTOPL.AsString
Burayı bir kontrol et. buradan dönen değer float bir sayı değil. Hata bu yüzden.

Kolay Gelsin...
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Madem float bir değer dönüyor aşağıdaki gibi yazabilirsin.

Kod: Tümünü seç

...
Label3.Caption:=FormatCurr('##,###,###,###', Query1ROGENELTOPL.AsFloat); 
...
Ayrıca SELECT * ... deki * yerine alan isimlerini yazmanda fayda var :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Bu şekilde oldu fakat ben burda toplam aldırmak istiyordum bu koda nasıl ekleyebilirim?
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Kod: Tümünü seç

SELECT SUM(GENELTOPLAM) FROM ROKAYIT...
şeklinde yaz.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Bu şekilde kısa yoldan yapmayı denedim ama olmadı .Yardım edermisiniz
DBGrid ekranımda bayağı alan var kısa yoldan toplam almalıyım.

Kod: Tümünü seç

Begin
Query1.Sql.Clear;
Query1.Sql.Add('Select * From ROKAYIT,SELECT SUM(ROGENELTOPL'));
Query1.Sql.Add('Where ROMONTAJTAR Between :ILKM5TAR AND :SONM5TAR');
Query1.ParamByName('ILKM5TAR').AsDate:=DateTimePicker1.date;
Query1.ParamByName('SONM5TAR').AsDate:=DateTimePicker2.Date;
Query1.Open;
Label3.Caption:=FormatCurr('##,###,###,###', Query1ROGENELTOPL.AsFloat);
Query1.refresh;
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Öyle bir yazım şekli yok maalesef :? toplam alacağın alan haricindekileri tek tek select ten sonra yazıp, en sonunda group by da belirtmen gerekir.

Kod: Tümünü seç

SELECT ALAN1, ALAN2, ALAN3,..., SUM(TOPLANACAK_ALAN) FROM TABLO_ADI
WHERE ŞART-KOŞUL
GROUP BY ALAN1, ALAN2, ALAN3,...
Bu genel tanımlamaya göre sorguyu düzenlersin artık :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla