firebird de refresh olmuyor

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ı
metemete
Üye
Mesajlar: 422
Kayıt: 21 Mar 2004 12:30
Konum: samsun
İletişim:

firebird de refresh olmuyor

Mesaj gönderen metemete »

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?
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

refreshSQL de neler yazılı ?
trigger ile hangi alanlara deger atiyorsun ?
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
metemete
Üye
Mesajlar: 422
Kayıt: 21 Mar 2004 12:30
Konum: samsun
İletişim:

Mesaj gönderen metemete »

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

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^
Cevapla