FB'de Küsürlü sayılar...

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
snofru
Üye
Mesajlar: 204
Kayıt: 19 Ağu 2004 02:57
Konum: /local/usr/src
İletişim:

FB'de Küsürlü sayılar...

Mesaj gönderen snofru »

S.A.

Firebird'de 2,68 i kaydetmek için hangi tipi kullanmalıyım... Decimal, Numeric ve Double yi denedim. Şayet yanlış test elmediysem (hepsi) 2,68 i 2,67999998 gibi bir şekilde kaydediyor ve editlerde öyle görünüyor. Yuvarlamak kaderim mi? İlgili yerlerde Katsayı belirttim (15,2) gibi... Ki bunlar hesaplamalarda kullanılacak...

_______________

Üzgünüm yine bir olaya takıldım altına ekleme yapayım. Bu konuyu sanırım daha önce yaklaşık bir cevap verildiğini hatırlar gibiyim ama 281 kayıta bakacak durumda değilim. Saat ilerlemiş kafa bi milyon... Bu konu hakkındada bişeyler söylerseniz mutlu bahtiyar olurum.
Olay şu ki; Master/Detail tablom var ve detaile kayıtlar giriyorum Gridden. Gridin bir kolonunda ComboBox gömdüm ve o başka bir tablodan bilgi çekip içini dolduruyor, kullanıcı da seçip ilgili tablonun ilgili alanına OnExit (Combo nun) olayından işliyorum. Ancak problem şu ki bu işleme olayını tüm kayıtlar için yapıyor. Yani her kayıt için ayrı şekilde içi doluyor Combonun ancak maalesef etkisini son seçimle tüm Detail kayıtlara yansıtıyor. Problemi bulamadım. Çok basit bişeyi yapmıyorum gibi ama bulamadım. Bu formda 7 tablodan bilgi çekip işliyorum kafam baya karmaşık sanırım ondandır. Umarım anlatabilmişimdir.

Saygılarımla...
Kullanıcı avatarı
serbek_tr
Üye
Mesajlar: 362
Kayıt: 16 Ağu 2004 12:54

Mesaj gönderen serbek_tr »

1. problemine bir yanıt vereyim arkadaşım ancak 2.problemini anlayamadım kusura bakma şimdi bahsi geçen alan için öncelikle table ın üzerinde sağ tuş yapıp fields editor ü seç açılan fields listesinde iligili fields ı seç ve bu fields ın object inspector penceresinde display format diye bir özelliği olacak oraya #.##, ifadesini yaz ekrana istediğin gibi tam olarak iki haneye yuvarlanmış bir sonuç verecek.

kolay gelsin
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

BDE mi kullanıyorsunuz? Eğer BDE Kullanıyorsanız, ALIAS'ınızdaki kullanıyorsanız BCD parametresini True yapmanız lazım.

Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
snofru
Üye
Mesajlar: 204
Kayıt: 19 Ağu 2004 02:57
Konum: /local/usr/src
İletişim:

Mesaj gönderen snofru »

S.A
Firebird 1.5 , D7, IB Bileşenleri ve IBExpert... Kullandığım araçlar bunlar...

serbek_tr-> Hocam ben yuvarlama istemiyorum. Yani yuvarlama mecburimi? Bu FB de illa şart bu mudur? 2,68 girersem 2,68 kalacak bir tip yok mu?
2. Sorumu tekrar anlatıyorum. Kısaca: Bir Grid içine kayıtlar giriyorsunuz ve bir kolona Combobox gömdüğünüzü düşünelim. Combonun içini nasıl Vt ye eklersiniz? Table1FFF.Value := Combo1.Text; gibi mi? Bu olayla yapılınca diyelim Gridde 3 satır kayıt işleyeceğiz, bu Combodan seçilen olay (Son seçilen) tüm Griddeki Table1FFF.Value değerlerini etkiliyor. Gece çözememiştim olayı bugünde henüz bakamadım... Yardımcı olursanız sevinirim...

Saygılarımla...
selm@n
Kıdemli Üye
Mesajlar: 442
Kayıt: 01 Oca 2004 11:52
Konum: Adapazarı
İletişim:

Mesaj gönderen selm@n »

hocam Numeric (2,1) kullanabilirsin..

DOMAIN tanımlayabilirsin;

Kod: Tümünü seç

CREATE DOMAIN D_SELMAN AS
 NUMERIC(2,1)
;
kolay gelsin;
;)
snofru
Üye
Mesajlar: 204
Kayıt: 19 Ağu 2004 02:57
Konum: /local/usr/src
İletişim:

Mesaj gönderen snofru »

selm@an > Hocam zaten Domain vardı... NUMERIC(6,2) idi.. Ya bu [6,2] muhabbetinin tam anlamı noktadan önce 6, sonra 2 yer ayırma manasımıdır? Ben çyle anlamıştım ama...

Saygılarımla...
selm@n
Kıdemli Üye
Mesajlar: 442
Kayıt: 01 Oca 2004 11:52
Konum: Adapazarı
İletişim:

Mesaj gönderen selm@n »

@sinefru hocam;
tam olarak bende anlayamadım olayı.. bir kaç günden beri dökümanlara bakıyorum falan ama tam bir bilgi edinemedim.. bilen bir arkadaş açıklarsa seviniriz..

Kolay gelsin..
;)
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

Kod: Tümünü seç

CREATE DOMAIN PARA AS 
NUMERIC(18,2)
bu sekilde bir domainim var ve bu alana 2.62 girince (ibexpertten) 2.620 olarak gayet güzel gösteriyor. sondaki sifir ibexpertin display format ayarlarindan kaynaklaniyor. istenirse bu ayar degistirilebilir.

delphi tarafindan deneyincede ayni olacagina eminim. yoksa benim isim cok zor olur :)

2.62 gibi degerler icin numeric(X,2) kullanabilirsiniz.
eger sorun varsa bu firebirdden kaynaklanmiyordur buyuk ihtimalle

ibexpert tarafindan kayit eklediginiz zaman ayni problem var mi?
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
snofru
Üye
Mesajlar: 204
Kayıt: 19 Ağu 2004 02:57
Konum: /local/usr/src
İletişim:

Mesaj gönderen snofru »

S.A.
Arkadaşlar sayılarla ilgili problemi hallettim sağolun... Ama halen Foreign Key problemim devam etmekte. Master/Detail olaylarda Foreign key kullanmadan bağlıyorum tabloları ve Trigger ile master silinince Detaildeki ilgili kayıtları siliyorum... Bu mantık ilerde problem açar mı?
Bu IB PDF lerinde Circular Referance olayı ile tablolar arası Foreign Key gösteriyorum ama Delphi ile FK hatası alıyorum....

Konu hakkında bilgi edinmek istiyorum....

Saygılar Sevgiler....

Taner DOĞAN
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

numeric(5,2) nin anlamı :
5 = Sayının tam kısımda ki hane sayısı + Sayının ondalık kısımda ki hane sayısı
2 = Sayının ondalık kısımda ki hane sayısı

Ör :
numeric (3,1) --> 28,3
gibi bir sayıya tekabül eder ...
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

Veri tabanın daki tablolar arasında Referential Integrity i sağlamak açısından Foreign Key kullanmanı tavsiye ederim .

Ayrıca bu yapıyı sağlamak için bir veri tabanı tasarım aracı kullanman da iyi olacaktır ..

Kolay gelsin..
snofru
Üye
Mesajlar: 204
Kayıt: 19 Ağu 2004 02:57
Konum: /local/usr/src
İletişim:

Mesaj gönderen snofru »

S.A.
Oğuz Bey, Foreign Key uygulamasını IBExpert te yapıyorum... Şöyle bir tabloda FK denemelerim Delphide hata almama sebep oluyor...

Master
______
ID (PK, Autoinc)
B
C


Detail
______
ID (PK, Autoinc)
BAG_ID (FK -> Masterdeki ID için)
X
Y

"Circular Reference for Foreign Key" yapısı böyle... Sadece o anlatımda Master tablodaki sadece PK (Auto increment olayı yok!) Ondan olabilir mi?

Saygılari Sevgiler...

Taner DOĞAN
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

A.S.

Dediğin olabilir.

Genel mantık olarak ; Veri tabanınızda her tablo için, delphi tarafında kullanmasanızda bir Primary Key olan alan oluşturmanız iyi olacaktır .

Zaten sonradan yapmışsınız. Bu şekilde ki bir yapı daha iyi olmuş .

Kolay gelsin...
Cevapla