round hakkında

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
rapsodim
Üye
Mesajlar: 147
Kayıt: 15 Eki 2003 03:52

round hakkında

Mesaj gönderen rapsodim »

query2.sql.Add('update ale.db set sonuc=tutar*0.9'); ifadesinden cıkan sonuc ondalıklı olabiliyor.round komutunu yukarıdaki dizilimde nasıl kullanabilrim.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

MS SQL Server'da ROUND'un kullanımı şöyle:

Kod: Tümünü seç

query2.sql.Add('update ale.db set sonuc=ROUND(tutar*0.9',0));
rapsodim
Üye
Mesajlar: 147
Kayıt: 15 Eki 2003 03:52

Mesaj gönderen rapsodim »

delphi 4.0 desteklemiyor şeklinde mesaj çıkardı.ne yapabilirim.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

bu kod veritabanı tarafında yazılmış bir kod, delphi değil. Delphi tarafındaki sorunu zaten Programlama forumunda arkadaşlar cevaplamışlar ya????

Ne istiyorsan biraz daha açık yazabilir misin? + eğer Delphi tarafında yapmak istiyorsan bu başlığı tekrardan niye açtın?

Kolay gelsin.
rapsodim
Üye
Mesajlar: 147
Kayıt: 15 Eki 2003 03:52

Mesaj gönderen rapsodim »

ÇARPIM SONUNDA TABLE DA

1235700,08
9840,60
789245 GİBİ KAYITLAR VAR BUNLARIN HEPSİNİ UPDATE EDEREK
1235700
9841
789245 ŞEKLİNE GETİRMEK İSTİYORUM.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

veritabanın SQL Server gibi bir SQL veritabanı ise yukardakine benzer bir sql cümlesi ile yapabilirsin. Yoksa bir döngü içinde tüm kayıtları tarayıp, değerlerini Delphi'deki round fonksiyonu ile değiştirerek güncelleyeceksin.

Kolay gelsin.
rapsodim
Üye
Mesajlar: 147
Kayıt: 15 Eki 2003 03:52

Mesaj gönderen rapsodim »

QUERY2.CLOSE;
QUERY2.SQL.Clear;
query2.sql.Add('update muhasebefatura.db set kdv=round(tutar*0.18,0)');
query2.ExecSQL;
table1.refresh;

şeklinde yaptım update yaptığımı round yapmıyor.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

veritabanı nedir rapsodim? Eğer paradox'sa hiç yorulma. Paradox'tan bir halt olmaz :) Kodla yapacan.

Değilse veritabanını yaz, ona uygun bir kod yazan çıkabilir.

Kolay gelsin.
rapsodim
Üye
Mesajlar: 147
Kayıt: 15 Eki 2003 03:52

Mesaj gönderen rapsodim »

evet paradox.sakıncalı mı? çötüğünü biliyoruz ama böyle işlemlerde sorun yaşattığını şimdi öğrendim.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

sorun oluşturması şöyle oluyor şimdi : yazdığın gibi bir kodu direk çalıştıramıyorsun. Kodla yapman lazım rapsodim, şuna benzer bir kod olacak:

Kod: Tümünü seç

Table1.First;
while not Table1.Eof do
begin
  Table1.Edit;
  Table1.FieldByName('KDV').AsFloat := round(Table1.FieldByName('KDV').AsFloat);
  Table1.Post;
  Table1.Next;  
end; {while}
NOT umuzu da yazalım : Paradox çok kötü bir seçim. Arama kısmından FireBird diye aratıp ateş kuşuyla tanışın ve mutlaka seminerleri seyredin.

Kolay gelsin.
rapsodim
Üye
Mesajlar: 147
Kayıt: 15 Eki 2003 03:52

Mesaj gönderen rapsodim »

round kullanrak tam sayıya çevirdiğim table alanlarını aynı mantık ile kuruş hanesi 2 olacak (540000,05) şekline nasıl getirebilirim.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Field'ın displayformat özelliğini kullan. Ama tabiiki hepsi ,00 şeklinde gözükür, eski şekline getiremezsin.

Eğer istediğin zaman tamsayı, istediğin zaman küsuratlı göstermek istiyorsan, yukardaki şekilde kod la değil display formatla yap.

Arama : displayformat :wink:

Kolay gelsin.
Cevapla