dbridde veri değişikliği yaptığımda trigger ile diğer tüm verileri değiştiriyorum.
afterpostuna commit edip ,ibdataset1.refresh yapıyorum.
ama diğer alanlar değişmiyor.
ibdataset1.close;ibdataset1.open; yaptıgımda değişiyor.
refresh ile neden olmuyor ne yapmak lazım?
firebird de refresh olmuyor
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
cari(kod,unvan) cari
hareket(ckod,vborc,tahsil,bakiye,tarih) hareketler
hareket tablosunda dbridde bilgi girişi yapıyor.
örneğin vborc girdiğinde procedure ile
tüm alanların bakiye 0 layıp yeniden yazdırıyorum.
bence burayla ilgili bi sıkıntı olmaması lazım cunku
hareket.close;hareket.open; yapıcan sorun yok.
ama her seferinde ilk kayda gittiği için benım ısıme yaramıyor
hareket(ckod,vborc,tahsil,bakiye,tarih) hareketler
hareket tablosunda dbridde bilgi girişi yapıyor.
örneğin vborc girdiğinde procedure ile
tüm alanların bakiye 0 layıp yeniden yazdırıyorum.
bence burayla ilgili bi sıkıntı olmaması lazım cunku
hareket.close;hareket.open; yapıcan sorun yok.
ama her seferinde ilk kayda gittiği için benım ısıme yaramıyor
Kod: Tümünü seç
CREATE TRIGGER T_INS_HAREKET FOR HAREKET
ACTIVE AFTER INSERT POSITION 0
AS
DECLARE VARIABLE SAYI bigint;
begin
if (new.stok1 is null) then new.stok1=0;
if (new.stok2 is null) then new.stok2=0;
if (new.stok3 is null) then new.stok3=0;
if (new.stok4 is null) then new.stok4=0;
if (new.stok5 is null) then new.stok5=0;
if (new.stok6 is null) then new.stok6=0;
select durum from durumlar into SAYI;
execute procedure spi_stok_hareket new.stok1,new.stok2,new.stok3,new.stok4,new.stok5,new.stok6;
if (sayi=1) then
begin
execute procedure chareket_duzenle new.ckod;
end
end
Kod: Tümünü seç
CREATE PROCEDURE CHAREKET_DUZENLE (
CKOD VARCHAR(15))
AS
DECLARE VARIABLE S INTEGER;
DECLARE VARIABLE DLR_KAYIT_SAYISI NUMERIC(15,0);
DECLARE VARIABLE XHNO NUMERIC(15,0);
DECLARE VARIABLE XBAKIYE NUMERIC(15,2);
DECLARE VARIABLE TBORC NUMERIC(15,2);
DECLARE VARIABLE TTAHSIL NUMERIC(15,2);
begin
delete from XTABLE1;
execute statement 'set generator xtable1_sno to 0';
update durumlar set durum=0;
insert into XTABLE1 SELECT GEN_ID(XTABLE1_SNO,1),HNO,VBORC,TAHSIL,BAKIYE
from hareket WHERE CKOD=:CKOD order by tarih;
select count(*) from xtable1 into DLR_KAYIT_SAYISI;
if (dlr_kayit_sayisi>0) then Update hareket set BAKiYE=0 where ckod=:ckod;
S=1;
While (S<=DLR_KAYIT_SAYISI) DO
BEGIN
select SUM(VBORC),SUM(TAHSIL) from xtable1 WHERE CKOD<=:S into TBORC,TTAHSIL;
XBAKIYE=TBORC-TTAHSIL;
select HNO from xtable1 where CKOD=:S into XHNO;
UPDATE HAREKET SET bakiye=:XBAKIYE WHERE HNO=:XHNO;
S=:S+1;
END
update cari set bakiye=:XBAKIYE where kod=:ckod;
update durumlar set durum=1;
suspend;
end^