firebird de nedeni ni bulamadığım bir hata

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
ng
Üye
Mesajlar: 192
Kayıt: 01 Mar 2004 11:49
Konum: Bursa
İletişim:

firebird de nedeni ni bulamadığım bir hata

Mesaj gönderen ng »

1. tablomda a intger, b integer c numeric (5,2) calculated (a/b) şeklinde alanlarım var ancak c de sadece işlemin tam kısmını alıyor. örneğin a=5, b=2 ise c=2,5 olacak yerde 2,00 oluyor nedenini bulamadım?

2.delphi de transaction1.commit dediğimde o transactiona bağlı tüm tablo veya SQL ler kapanıyor bunu önleyebilirmiyim.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

1. c'ye atamanın yapıldıgı yerdeki atamya dikkat edin... Table1C.Asınteger:= gibi bir ataam yapıyor olabilirsiniz... AsFloat olmali... Ya da kullanılan bir ara değişken olabilir ya da veritabanı tarafında yapıyorsanız da benzer bir durum olabilir....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

2. commit yerine CommitRetaining kullan
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Re: firebird de nedeni ni bulamadığım bir hata

Mesaj gönderen husonet »

IBtransaction1.CommitRetaining; ifadesini kullan.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
ng
Üye
Mesajlar: 192
Kayıt: 01 Mar 2004 11:49
Konum: Bursa
İletişim:

firebirde çözemediğim ve anlamlandıramadığım bir sorun?

Mesaj gönderen ng »

Cevaplar için teşekkür ederim. Ancak ilk sorunuma hala çözüm bulamadım. herhangi bir deişken de hata olması mümkün değil. Kodaları veriyorum(isql de).


create table deneme(
a integer,
b intger,
c numeric(5,2) computed(b/10)
);

b değerine 15 verdiğimde sonuç 1.00 çıkıyor sayıların ondalık kısımlarını almıyor. herhangi bir değişken sorunu yok.
onaydin

Mesaj gönderen onaydin »

merhaba a ve b değerleri integer olduğu için sybase'de de çalışmıyor,


tabloyu oluştururken c alanında
hesaplanacak a ve b alanlarını double a çevirince
sonuç alınabiliyor

Kod: Tümünü seç

c numeric(5,2) compute( convert(double,a)/convert(double,b))
ng
Üye
Mesajlar: 192
Kayıt: 01 Mar 2004 11:49
Konum: Bursa
İletişim:

Mesaj gönderen ng »

Firebirde de bildiğim kadarı ile double diye bir değişken yok. bölme işlemi için convrt(double,a) dediğimizde double komutunu tanımıyor ve kabul etmiyor. Çok ilginç aslında basit bir bölme işlemi neden yapmıyor acaba? :?:
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

double yerine numeric(5,2) verin . Bir de firebird'de convert'in oldugundan emin degilim. Yoksa cast komutu var aynı işi yapan....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Cevapla