Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
rapsodim
Üye
Mesajlar: 147 Kayıt: 15 Eki 2003 03:52
Mesaj
gönderen rapsodim » 23 Tem 2004 08:33
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.
naile
Admin
Mesajlar: 1873 Kayıt: 11 Haz 2003 10:11
Mesaj
gönderen naile » 23 Tem 2004 09:11
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 » 23 Tem 2004 02:21
delphi 4.0 desteklemiyor şeklinde mesaj çıkardı.ne yapabilirim.
mussimsek
Admin
Mesajlar: 7602 Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:
Mesaj
gönderen mussimsek » 23 Tem 2004 03:00
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 » 23 Tem 2004 03:05
Ç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.
mussimsek
Admin
Mesajlar: 7602 Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:
Mesaj
gönderen mussimsek » 23 Tem 2004 03:18
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 » 23 Tem 2004 04:32
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.
mussimsek
Admin
Mesajlar: 7602 Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:
Mesaj
gönderen mussimsek » 23 Tem 2004 04:40
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 » 23 Tem 2004 04:50
evet paradox.sakıncalı mı? çötüğünü biliyoruz ama böyle işlemlerde sorun yaşattığını şimdi öğrendim.
mussimsek
Admin
Mesajlar: 7602 Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:
Mesaj
gönderen mussimsek » 23 Tem 2004 05:03
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 » 24 Tem 2004 08:29
round kullanrak tam sayıya çevirdiğim table alanlarını aynı mantık ile kuruş hanesi 2 olacak (540000,05) şekline nasıl getirebilirim.
mussimsek
Admin
Mesajlar: 7602 Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:
Mesaj
gönderen mussimsek » 24 Tem 2004 10:14
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
Kolay gelsin.