Trigger Kullaniminda Yardim

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
mrtblt
Üye
Mesajlar: 222
Kayıt: 02 Tem 2007 05:13

Trigger Kullaniminda Yardim

Mesaj gönderen mrtblt »

FB 2.0 kullaniyorum ve ilk defa trigger olusturuyorum. Bunu IBExpertte yapiyorum. Ama derlerken soyle bir hata mesaji aliyorum.

Kod: Tümünü seç

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 5, column 89.
;.
Yazdigim kod ise su sekilde

Kod: Tümünü seç

CREATE trigger lks_cl_bi0 for lks_cl
active before insert position 0
AS
begin
    select sum (amount*carpan) as bky from lks_char where clientref    = lks_cl.cl_name ;
    bakiye := bky;
end
Bu kodlamanin sorunlari oldugu muhakkak cunku bu sekil bir kodlama benimde icime sinmedi. Bu kodlamayi yapmamin sebebi durum hakkinda fikir sahibi olmaniza bir miktar yardimci olmak.
Isterseniz yapmak istedigim seyi size ozetliyeyim.

LKS den birtakim tablolari Kendi veritabanima aktariyorum. Bu aktarim sonucunda olusan 2 tablo dusunun 1. de cari hesap hareketleri var. Ve bu tabloda(lks_char) carpan diye bir field var bu field girisle alakali hareketlerde (-1), cikisla alakali hareketlerde (+1) degerini aliyor. Bunu cari hesap bakiyelerini hesaplamayi daha da kolaylastirmak icin yaptim. Yani bircok degisken kullanmadan basit matematiksel islemlerle cari hesap bakiyeleri olusturulabilinir. Bir de cari hesap tanimlarinin bulundugu bir tablo var.
Bu tablo icin bir trigger olusturmak istiyorum. Bu trigger lks_cl de cari kart olusturulurken ilgili karta ait hareketlerden olusan bakiyeyi lks_char tablosundan sum (amount*carpan) komutu ile hesaplayip lks_cl deki bakiye alanina yazacak. Referans alanlar da ;
lks_cl tablosunda cl_name alani
lks_char tablosunda clientref alani


Boyle bir triggeri olusturma hususunda yardimci olabilirseniz sevinirim.
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

triggerden ziyade sp yazmanız lazım. trigger le tetiklemeyi alıp, ilgili sp yi çalıştırmanız lazım.
bunun için ise arama yapmanız lazım. forumda sp ile makale ve bir sürü topic mevcut...
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