Convert string

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Convert string

Mesaj gönderen CiTiZEN »

Merhabalar arkadaşlar ibsql ile toplama işlemi yaptırdığım bir alanım var bu alana ise daha önceden başka bir yerde toplanıp eklenen formatı şu şekilde olan bilgilerim var (0,00) fakat ibsql bilgi formatı (0.00) şeklindeyken toplama yapmakta benim diğer tarafta yaptığım işlemde ise double değişken olduğu için 0.00 olan formatı kabul etmemekte yani kısaca ibsql format küsüratı olarak '.' benim toplama yaptığım alan ise double olduğu için ',' istemekte bu durumu nasıl düzeltirim?Bu şekilde işlem yaptığım zaman ibsql toplama işlemini yapmıyor ve şöyle bir dönüşüm hatası veriyor: "Conversion error from string "5,5""..Şu an gece saat 2 ve 1 günüm buna harcanmış durumda :? yardımlarınızı bekliyorum.
UWESIS CORPORATION
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: Convert string

Mesaj gönderen CiTiZEN »

toplama yaptığım kod @Emin_as ın verdiği kod:

Kod: Tümünü seç

var tablosayi:double;
begin
if IBSQL1.Transaction.Active=False then
  ibsql1.Transaction.StartTransaction;  // ibsql1 e baglı transaction çalıştırılmalıdır.
  ibsql1.SQL.Text:='select sum (FIELD4) from EXAMPLE_TABLE';  // sql bilgisi verilir
  ibsql1.ExecQuery;  // sql sorgu çalıştırılı için bunu kullanmalısın
  if ibsql1.RecordCount > 0 then
    tablosayi:=ibsql1.Fields[0].AsDouble  // bilgileri fields  ile alabilirsin
else tablosayi:=0;
label1.Caption:=FormatFloat('#,##0.000',tablosayi);
  ibsql1.Close;  // işlem bittikten sonra ibsql kapatılmalıdır
UWESIS CORPORATION
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: Convert string

Mesaj gönderen emin_as »

Tam anlamadım ama delphi ondalık ayıracı için kullandığı değişkeni decimalSeparator de tutar. Bu bilgi bölgesel ayarlardan gelir.

Eğer bölgesel ayarlara dokunmayayım sadece hesap kısmında ayıracı degiştireyim dersen:

Kod: Tümünü seç

var 
  tempch : char;
 ....
  tempch:=decimalseparator;
  try
    decimalseparator:=';' // ondalık ayıracını noktalı virgul yap dedim
    hesaplarıyap;     
   .....  
  finally
    decimalsepartor:=tempch;   // eski ayıraca döndük
  end;
end;
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: Convert string

Mesaj gönderen CiTiZEN »

@Emin_as Hocam şöyle anlatayım, müşterilerim var ve bu müşterilere stoktan yapılan satışlar mevcut.Stokta ürünler 2,50 tl gibi bir formata sahip saklanmakta ve satış anında bir double değişken ile bunların miktarı hesaplatılmakta.Double alan 2.50 formatında hata veriyordu.
Bu toplama yaptırdığım alanda hesaplama işleminden önce

Kod: Tümünü seç

decimalseparator:='.'
kullanınca sorun çözüldü sanırım şimdilik problem yok teşekkürler.
UWESIS CORPORATION
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Convert string

Mesaj gönderen Battosai »

decimalseparator:='.'; kodu ana formun oncreate olayına yazmak daha mantıklı olur...Açılışta bir defa tanımlama yeterlidir.
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: Convert string

Mesaj gönderen CiTiZEN »

öyle yaptım şu anda sorunsuz çalışmakta yardımları geçen arkadaşlara teşekkürler
UWESIS CORPORATION
Cevapla