aa tablusundaki secili alanı bb tablosuna kopyalamak istiyorum
bunu trigger içinde kullancağım
örnekle sunun gibi diyerbilirz
insert into bb(no) values ( (select no from aa where no>100 ))
aynı andan birden fazla satırı nasıl aktarabilirim ?
table yi baska bir tableye kopyalamak?
tşk ederim
Allah razı olsun tşk ederim oldu.
peki yine sql için table1.next e karsılık gelen komut varmı?
daha doğrusu mesela söle bir şeye yapmak istiyorum
xx=table2.bakiye
select refno,tutar,islem from table1 where islem='Veresiye' begin
if xx>0 then begin xx=xx-table1.tutar; table1.tutar=0 end
table1.next
end;
peki yine sql için table1.next e karsılık gelen komut varmı?
daha doğrusu mesela söle bir şeye yapmak istiyorum
xx=table2.bakiye
select refno,tutar,islem from table1 where islem='Veresiye' begin
if xx>0 then begin xx=xx-table1.tutar; table1.tutar=0 end
table1.next
end;
conversion error from string "400" hatası alıyorum
Kod: Tümünü seç
CREATE PROCEDURE B_SPINS_CARI_HAREKET (
CHNO NUMERIC(15,0),
FIS_NO NUMERIC(15,0),
TARIH DATE,
ISLEM VARCHAR(15),
ADET NUMERIC(9,0),
ACIKLAMA VARCHAR(40),
STOK VARCHAR(40),
TUTAR NUMERIC(15,2),
CARI_KOD NUMERIC(15,0),
CARI_UNVAN VARCHAR(40))
AS
DECLARE VARIABLE DLR_KAYIT_SAYISI NUMERIC(15,0);
DECLARE VARIABLE DLR_UNVAN VARCHAR(40);
DECLARE VARIABLE XTUTAR NUMERIC(15,2);
DECLARE VARIABLE XCHNO NUMERIC(15,0);
DECLARE VARIABLE S NUMERIC(15,0);
DECLARE VARIABLE XKALAN_TUTAR NUMERIC(15,0);
begin
UPDATE RDB$TRIGGERS SET RDB$TRIGGER_INACTIVE=1 where RDB$TRIGGER_NAME = 'B_TI_CARI_HAREKET';
UPDATE RDB$TRIGGERS SET RDB$TRIGGER_INACTIVE=1 where RDB$TRIGGER_NAME = 'B_TU_CARI_HAREKET';
UPDATE RDB$TRIGGERS SET RDB$TRIGGER_INACTIVE=1 where RDB$TRIGGER_NAME = 'B_TD_CARI_HAREKET';
if (:Islem='Tahsilat') then
update cari_hareket set Kalan_tutar=0 where chno=1;[b]Bu satırda hata veriyor?[/b]
hocam triggerları procedure icinde inactive ediyorsun ama aslında inactive olmuyor, procedure commit edilmedigi icin bu tarz bir yapı kullanman zor,
bunun yerine Terminator arkadasın onerdigi bir yapı vardı,
Tablonda TriggerEnable seklinde bir kolon olustur.
tabloda islem yapmadan once bu sutunu guncelle, sonra trigger kodunda bunu kontrol ederek kodları calıstır yada calıstırma,
Bu sekilde bir cozum haricinde bir yol yok diye biliyorum,
Eger varsa baska bir cozumu bildiklerimize bir yenisini katmıs oluruz.
bunun yerine Terminator arkadasın onerdigi bir yapı vardı,
Tablonda TriggerEnable seklinde bir kolon olustur.
tabloda islem yapmadan once bu sutunu guncelle, sonra trigger kodunda bunu kontrol ederek kodları calıstır yada calıstırma,
Bu sekilde bir cozum haricinde bir yol yok diye biliyorum,
Eger varsa baska bir cozumu bildiklerimize bir yenisini katmıs oluruz.

ÜŞENME,ERTELEME,VAZGEÇME