IBDataset Update sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Akshan
Üye
Mesajlar: 23
Kayıt: 14 Kas 2005 08:35

IBDataset Update sorunu

Mesaj gönderen Akshan »

Arkadaşalr forumda aradım ama bulamadım,belki de vardır,kusura bakmayın..
IBdataset ile update yapıyorum veritabanına kaydediyor.

Kod: Tümünü seç

IBDataSet1.SelectSQL.Add('Update TEKLIF set ISKONTO='''+Edit60.Text+''',YEKUN='''+Edit61.Text+''',MARJ='''+Edit64.Text+''',MARJORAN='''+Edit66.Text+''','+
     'GTOPMKARE='''+Edit48.Text''',ISZFIYAT='''+Edit59.Text+''',AMBORAN='''+Edit53.Text+''',NAKORAN='''+Edit52.Text+''',ODEME='''+Label64.Caption+''',TERMIN='''+DateToStr(DateTimePicker2.Date)+''' where TEKNO ='''+Edit32.Text+'''');
     IBDataSet1.ExecSQL;
     Form1.IBTransaction1.CommitRetaining;
Burada edit48.text yazdığım zaman bu editin içerisindeki 25,15 olam metrekare değerini veritabanına 2515 olarak kaydediyor.bunu nasıl 25,15 olarak kaydettirebilirim...

teşekkürlerrrrrrrrrrr
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

IBDataSet1.SelectSQL.Add('Update TEKLIF set
1 - select de update yapıyorsun....

Kod: Tümünü seç

IBDataSet1.ModifiySQL.Add('Update TEKLIF set ISKONTO='''+Edit60.Text+''',YEKUN='''+Edit61.Text+''',MARJ='''+Edit64.Text+''',MARJORAN='''+Edit66.Text+''','+ 
     'GTOPMKARE='''+strtofloat(Edit48.Text)''',ISZFIYAT='''+Edit59.Text+''',AMBORAN='''+Edit53.Text+''',NAKORAN='''+Edit52.Text+''',ODEME='''+Label64.Caption+''',TERMIN='''+DateToStr(DateTimePicker2.Date)+''' where TEKNO ='''+Edit32.Text+''''); 
     IBDataSet1.ExecSQL; 
     Form1.IBTransaction1.CommitRetaining;
2- ilgili alan ondalık değer strtofloat la çevirmelisin....

Kolay Gelsin...
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Kullanıcı avatarı
Akshan
Üye
Mesajlar: 23
Kayıt: 14 Kas 2005 08:35

Mesaj gönderen Akshan »

strtofloat(Edit48.text) yazdım incompatible type hatası veriyor..
FormatFloat u felan da denedim olmadı...

Teşekkürler.....
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

ilgili fieldin tipini yazarsan sorunun daha kısada çözülür gibi görünüyor.. ben yazmış olduğun 25,15 değerini baz alarak fieldin ondalık olduğunu varsayarak o kodu yazdım. field integer, smallint veya bigint olması durumunda bu alana 25,15 değerini giremezsin aksi halde type hatası alırsın....

bu değeri girebilmek için ilgili fieldi Numeric 15,2 (size = 15 scale = 2) veya Double yapmalısın....
En son kadirkurtoglu tarafından 17 Oca 2006 08:32 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Merhaba,

veritabanına virgülsüz yazması tablondaki alanın float veya virgüllü değer girilebilen alan olmadığını gösteriyor gibi.

tablondaki alanı float yapmalısın ki virgüllü girsin artı birde edit.text i strtofloat olarak çevirmen gerekiyor.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
Akshan
Üye
Mesajlar: 23
Kayıt: 14 Kas 2005 08:35

Mesaj gönderen Akshan »

Şu şekilde hallettim...Teşekkürler...

Kod: Tümünü seç

IBDataSet1.Close;
     IBDataSet1.SelectSQL.Clear;
     IBDataSet1.SelectSQL.Add('Update TEKLIF set ISKONTO=:ISKONTO,YEKUN=:YEKUN,MARJ=:MARJ,MARJORAN=:MARJORAN,'+
    'GTOPMKARE=:GENEL,ISZFIYAT=:ISZFIYAT,AMBORAN=:AMBORAN,NAKORAN=:NAKORAN,ODEME=:ODEME,TERMIN=:TERMIN where TEKNO ='''+Edit32.Text+'''');
     IBDataSet1.ParamByName('ISKONTO').AsFloat:=StrToFloat(Edit60.Text);
     IBDataSet1.ParamByName('MARJ').AsFloat:=StrToFloat(Edit64.Text);
     IBDataSet1.ParamByName('MARJORAN').AsFloat:=StrToFloat(Edit66.Text);
     IBDataSet1.ParamByName('AMBORAN').AsFloat:=StrToFloat(Edit53.Text);
     IBDataSet1.ParamByName('NAKORAN').AsFloat:=StrToFloat(Edit54.Text);
     IBDataSet1.ParamByName('ODEME').AsString:=Label64.Caption;
     IBDataSet1.ParamByName('TERMIN').AsDate:=DateTimePicker2.Date;
  ...........................................
  ...........................................
     IBDataSet1.ExecSQL;
     Form1.IBTransaction1.CommitRetaining;
float olan bir alanı yazdırırken Edit59.Text:=FormatFloat('#,##,0.00',(IBQuery3YEKUN.AsFloat)); olarak yazdırdım..Ancak şimdi bu değeri update ederek kaydetmek isityorum.ama 12354,50 not float diyor vehata veriyor.bunu float olarak tekrara nasıl kaydedebilirim..


Teşekkürler.........
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba,

formda gösterirken formatfloat ile edit içindeki sayıyı virgüllü olarak gösterebiliyorsun ama sonuçta edit içindeki veri string değerde oluyor. bu yüzden insert veya benzeri işlem yaparken edit59.text i strtofloat olarak çevirmen gerekiyor olarak düşünüyorum.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
Akshan
Üye
Mesajlar: 23
Kayıt: 14 Kas 2005 08:35

Mesaj gönderen Akshan »

Kod: Tümünü seç

IBDataSet1.SelectSQL.Add('Update TEKLIF set ISKONTO=:ISKONTO,YEKUN=:YEK,MARJ=:MARJ,MARJORAN=:MARJORAN,'+
    'GTOPMKARE=:GENEL................ where TEKNO ='''+Edit32.Text+'''');

     IBDataSet1.ParamByName('GENEL').AsFloat:=StrToFloat(Edit59.Text);
update ederken edit59.text içerisindeki değeri strtofloat yaparak update ediyorum ama formatfloat yaparak gösterdiğim 1543,35 değerini not formar float diyerek update etmiyor.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
bölgesel ayarlardan kaynaklanıyor olabilir mi acaba?
, mü . bazı makinelerde değişik olabiliyor.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
Akshan
Üye
Mesajlar: 23
Kayıt: 14 Kas 2005 08:35

Mesaj gönderen Akshan »

aslangeri yazdı:s.a.
bölgesel ayarlardan kaynaklanıyor olabilir mi acaba?
, mü . bazı makinelerde değişik olabiliyor.
kolay gelsin.
Ayarlara baktım ordan da değil üstad..
Cevapla