hersey normal ama stored procedure çalışmıyor???

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
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

hersey normal ama stored procedure çalışmıyor???

Mesaj gönderen nitro »

s.a.
aşağıdaki sp ve trigger bir stok tablosundaki fiyatları güncellemek üzere yazılmıştır.
ürünün 4 girişfiyatı ve 4 satışfiyatı vardır.
yapmak istediğim şey yeni bir gelişfiyatı veya satışfiyatı girildiğinde
eğer yeni fiyat eski birinci fiyattan farklı ise üçüncü fiyatı 4.,
2. fiyatı 3., 1. fiyatı 2., ve yeni fiyatı da birinci fiyat yapması.
yani fiyatları güncel tutmak için fifo yapısı.
kod şöyle ama hata veriyor. acaba bir syntax hatası mı yapıyorum?

Kod: Tümünü seç

CREATE PROCEDURE FIYATGUNCELLE (
    YENIGFIYAT NUMERIC(6,2),
    YENISFIYAT NUMERIC(6,2),
    AKTIFSTOKNO INTEGER,
    ESKIGFIYAT NUMERIC(6,2),
    ESKISFIYAT NUMERIC(6,2))
AS
begin
  if (:YENIGFIYAT<>:ESKIGFIYAT)then
   UPDATE stokkart SET
    GELISFIYAT4 = GELISFIYAT3,
    GELISFIYAT3 = GELISFIYAT2,
    GELISFIYAT2 = GELISFIYAT1,
    GELISFIYAT1 = :YENIGFIYAT where
    STOKNO = :AKTIFSTOKNO;
   if (:YENISFIYAT<>:ESKISFIYAT)then
    UPDATE stokkart SET
    SATISFIYAT4 = SATISFIYAT3,
    SATISFIYAT3 = SATISFIYAT2,
    SATISFIYAT2 = SATISFIYAT1,
    SATISFIYAT1 = :YENIGFIYAT where
    STOKNO = :AKTIFSTOKNO;

  suspend;
end
bu da trigger:

Kod: Tümünü seç

CREATE TRIGGER STOKKART_BIU0 FOR STOKKART
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
  execute procedure fiyatguncelle NEW.gelisfiyat1, NEW.satisfiyat1, new.stokno, OLD.gelisfiyat1, OLD.satisfiyat1;
end
teşekkürler.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
trigerde parametreleri parentez içinde yazılması gerekmiyormu?
birde verdiği hatayı yazarsanız arkadaşar daha çabuk yardımcı olabiliriler.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

hata şu..!

Mesaj gönderen nitro »

sayın aslangeri,
parametreleri parantez içinde de gönderdim. ama aynı hata oldu.
ibexpertin verdiği hata mesajını gönderiyorum:

This column cannot be updated because it is derived from a an sql function or expression attempted update of read-only column.
Misafir

Mesaj gönderen Misafir »

arap :)
hatada read only column diye bi ibare var orayı göz önünde bulundurarak bi daha incele tabloyu..
kolay gelsin.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Kod: Tümünü seç

   UPDATE stokkart SET 
    GELISFIYAT4 = GELISFIYAT3, 
    GELISFIYAT3 = GELISFIYAT2, 
    GELISFIYAT2 = GELISFIYAT1, 
    GELISFIYAT1 = :YENIGFIYAT where 
    STOKNO = 5 
Bu kodu bagimsiz olrak ISQL icinden calistirdiginizda işlemi yapiyor mu ? Read only mesaji vermesi ilginc. stokkart bir tablo degil mi? Yani view filan degil.. Ve de GELISFIYAT alanları da standart alanlar. Yani computed alan tarzi bir alan olmaması gerekir tabi ki.
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Cevapla