is not a valid integer value Hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

is not a valid integer value Hatası

Mesaj gönderen Salih »

Veritabanı Firebird, D7 enterprise kullanıyorum.

Dataset'i DBGrid e bağlı şekilde kullanıyorum, KAYDET butonuna basınca, daha BtnKaydetClick procedure'una gelmeden bu hata mesajını veriyor.

Aşağıdakileri denedim ama sonuç alamadım.
* Yeni bir satıra geçince DSEbadX.Text := '0'; atadım, olmadı. İlla ki elle sıfır yazmak gerekiyor.

* Dataset in on new record eventinde o alanı sıfırladım, olmadı.

* Dataset in onPostError, OnUpdateError vs proc.larına : POST_ERROR(E.message); yazıp mesajı Türkçeleştireyim dedim, bu proc.ların hiçbirine girmedi (break koyup baktım).

* insert trigger ında değeri kontrol edeyim, null ise sıfır atayayım dedim, olmadı.

Ne yapabilirim ? KAYDET butonuna basıldığında hata mesajı vermek istemiyorum, bu olmazsa Türkçe bir mesaj vermeek istiyorum.

Selamlar, sevgiler...
Sevgi, Saygı.....
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

DSEbadX.Text := '0'; dersen olmaz tabi texte değer verme
kaydetme esnasında tabloadi.fieldbyname('alanadi').asinteger:=0 de


Saygılar...
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
heskin35
Üye
Mesajlar: 132
Kayıt: 30 Haz 2004 09:48

Mesaj gönderen heskin35 »

İnteger bir alana veri aktarırken veriyi integere çevirmeden atarsan bu şekilde olur hocam.
Zaten Micro hocamda yapacağın şekli anlatmış. Bu mantık genel olarak heryerde geçerlidir.
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Mesaj gönderen Salih »

Çok teşekkürler. Yalnız, DSEbadX diye kullandığım, dataset in bir alanının ismi :
DSEbadX: TIntegerField; şeklinde.

Yine de sizin dediğinizi de yaptım, yine olmadı :
SDM.DataSetsipsatir.fieldbyname('EBADX').asinteger:=0;

Şimdi, şöyle bir durum farkettim, bir ipucu olabilir. DBGrid içinde, örneğin değeri 12.3 olan bir alanda iken (o satırı kaydedip) bir alt satırın ilk alanına, yani EbadX alanına geçersem :

Hata : '12.30' is not a valid integer value for field 'EBADY' şeklinde hata veriyor. Yani üst satırdaki, örneğin 8. kolonun değerini, alt satırdaki ilk kolona yazmışım gibi bir olay.

Madem öyle, DBGrid in OnColexit inde bunu yakalayayım diyorum, o bölüme de girmiyor. Nerde yakalayacağımı bulamadım henüz, Oynatmama az kaaldı !!!
Sevgi, Saygı.....
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

Merhaba,
integer tam sayı demektir, 12.30 da haliyle tamsayı değil yani vertabanı yapını float olacak şekilde değiştirirsen sorundan kurtulursun
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Mesaj gönderen Salih »

Hocam ben yanlış anlatıyorum sanırım, çünkü saatlerdir bu sorunu aşamadım, kafam davul oldu.
Ebadx integer bir alan ve integer değer girilmesi gerekiyor. Ancak, DBgridde en son veri girilen alan hangisi ise, o alandaki değeri alıp yeni yaratılan satırın ilk alanına yazıyor.
Yani, üst satırdaki son alanda örneğin Evet yazılı diyelim, kayıdı post edip, boş bir kayıt append ediyorum. Kullanıcı o sırada KAYDET-Çık butonuna basınca, EbadX e 'Evet' atamaya kalkıyor (ekranda evet görünmüyor ama hata mesajından böyle yaptığını anlıyorum) ve hata veriyor. Eğer grid e elle sıfır yazıp daha sonra KAYIT tuşuna basarsa, ben 'madem sıfır yazdın ben bu kayıtı silerim' deyip Delete ediyorum, o zaman hata mesajı vermeden çıkıyor.

Ben her satır post edildiğinde, yeni kayıdın integer alanlarına sıfır atayayım ki kullanan adam KAYIT dediğinde hata mesajı görmeden çıksın istiyorum. Ama beceremedim gitti.
Sevgi, Saygı.....
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

o zaman kullandığın dataset in veya table nin beforepost olayında bu ilk dediğimi yapıcaksın
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Mesaj gönderen Salih »

MicroChip yazdı:o zaman kullandığın dataset in veya table nin beforepost olayında bu ilk dediğimi yapıcaksın
Valla inanmayacaksınız ama, önce hata mesajını veriyor, sonra beforepost eventine giriyor, iyice inatlaştı benle :) Sanki bütün bu eventlerden önce bir yerlerde data validation yapan bir şey varmış gibi davranıyor. :kup:

Çaresiz pes ettim, DBGgriddeki sütunların sırasını değiştirdim, string değer alan bir sütunu en başa getirdim, şimdilik böyle kalsın bakalım.
Sevgi, Saygı.....
Cevapla