(domain) boolean type hatası

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
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

(domain) boolean type hatası

Mesaj gönderen adnansirca »

merhabalar....
Firebird de
create domain DMN_BOOLEAN as SMALLINT default 0 not null
check ( value in (0,1));
şekilnde boolean type belirledim ve yaklaşık 65 tane alan type ini buna atadım....

checkbox ile kontrol ediyorum....
Yalnız alanlardan birini true yaptığımda(checkbox onclick olayı ile yani) diğerlerinin tamamıma da true (aynısı false için de oluyor) oluyor ve update ederken hata ile karşılaşıyorum.....
Nasıl bir çözüm önerirsiniz...
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

hata mesajı nedir... TDBCheckBox sınıfından bileşenler. data için true ve false değerlerini String olarak isterler. Default Değerler 'True' ve 'False' dir.. senin oluşturduğun domain smallint tam sayı bir değişken... true için 1 false için 0 değerlerini tanımladınmı..

Kod: Tümünü seç

DBCheckBox1.ValueChecked := '1';
DBCheckBox1.ValueUnchecked := '0';
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
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Mesaj gönderen adnansirca »

hocam tanımlama yapmamıştım.... Dediğin gibi string değer döndürüyor.. o kısmı atlamışız..... update hatası almıyorum şimdi....
... Yalnız ikinci bir sorun daha vardı.... yukraıda belirttim... domain i yaklaşık 65 tane alana atadım...
veritabanında (Alan1 (DMN_BOOLEAN) Alan2 (DMN_BOOLEAN) ... gibi)
DbCheckbox1.DataField := Alan1
DBCheckbox2.DataField := Alan2

Aslında amacım true ve false olarak kullanmak... Kullanıcıya DBCheckbox içerisinde gösteriyorum.....

ama DBCheckbox lardan herhangi birine tıkladığımda (OnClick olayı yani) diğerleri içinde aynı yordam (OnClick) çalışıyor.... Yani hepsi aynı anda true ya da false oluyor.... Atamayı kodla değil tasarım anında yaptığım için tüm dbcheckbox lara aynı yordamın çalışması beni şaşırttı...
Sorunu çöezemedim...
Firebird de domain atnımladığında bunu istediğin kadar alan için kullanamıyor musun yoksa.... Bu biraz mantıksız geliyor bana da....
ya da tanımlama domain tanımlarken bir hatamı yaptım acaba diyorum ama görünürde de bir hata yok....
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

Yani hepsi aynı anda true ya da false oluyor.... Atamayı kodla değil tasarım anında yaptığım için tüm dbcheckbox lara aynı yordamın çalışması beni şaşırttı...
DBCheckBox ları copy-paste yöntemi ile oluşturmuşsun.

DBCheckBox1 hariç diğerlerinin tamamını seç ve Event kısmındaki OnClick yordamlarını temizle...

kısacası ve özü 1.DBCheckBox a event atadıktan sonra diğerlerini copy paste etmişsin.. dolayısla diğerlerinin click yordamı ilk event atadığın yordamda çalışıyor...
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
Cevapla