evet fahrettin abi can alıcı noktama bastın. yukarıdan beri asıl öğrenmek istediğim bu idi ama bu işi bilmediğimiz gibi soru sormayıda bilmiyorus.
şimdi yapmak istediğim çalışmada duruma göre tablolardaki alanlar yani sp yazılacak alan sayıları değişiyor. misalen gider tablosunda yakıt, asansör, temizlik...... gibi alanlar 10 veya üstü alan oluşbiliyor. bunları sp ile arttırıp eksiltmek istiyorum.
verdiğin örneğe uygun olarak her alan için sp ve trig yazdığımda işlemler tıkır tıkır çalışıyor buda zaman ve emek sarfettiriyor. bazı denemeler yaptım başaramadım o tablonun sp sini yazarken tüm alanları içinde barındıran ve işlemlerini yaptıran soruyu bu yüzden sormuştum.
Kod: Tümünü seç
CREATE PROCEDURE SPI_AIDATODEME_ODENEN (
DAIRENO INTEGER,
AIDATODENEN FLOAT,
SICSUODENEN FLOAT)
AS
DECLARE VARIABLE DLR_KAYIT_SAYISI INTEGER;
begin
select count(*)
from DURUM where DAIRENO = :DAIRENO
INTO DLR_KAYIT_SAYISI;
if (DLR_KAYIT_SAYISI=0) then
insert into DURUM(DAIRENO,TPLODENEN) values(:DAIRENO,0);
update DURUM set
TPLODENEN = TPLODENEN+(:AIDATODENEN+:SICSUODENEN)
where DAIRENO = :DAIRENO;
END
CREATE TRIGGER TI_AIDATODEME FOR AIDATODEME
ACTIVE AFTER INSERT POSITION 0
AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
select count(*)
from DAIRESAKINLERI
where NEW.DAIRENO = DAIRESAKINLERI.DAIRENO into numrows;
IF ( numrows = 0 ) THEN
BEGIN
EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;
END
execute procedure SPI_AIDATODEME_TUTAR NEW.DAIRENO, NEW.aidattutari, NEW.SICSUTUTARI;
execute procedure SPI_AIDATODEME_ODENEN NEW.DAIRENO, NEW.AIDATODENEN, new.SICSUODENEN;
execute procedure SPI_AIDATODEME_KALAN NEW.DAIRENO, NEW.KALAN;
END
yaptığım çalışma bu triggerde bütün sp leri (o tabloya ait insert veya delet) tetikleyebiliyorum bunu bi nebze başardım.
ama sp leri kafam almadı.
AIDATODEME tablomda
aidattutarı
sıcsututarı
aidatödenen
sıcsuödenen
kalan
durum tablomda
odenmesigereken
toplamödenen
borcu
diye alanlar var ben burda yukarıdaki sp de anlaşıldığı gibi aidattutarı+sıcaksututarı+odenmesigereken=ödenmesigereken şeklinde yazıp çalıştırmayı başardım.
tablolarımdaki sp leri bu şekil oluşturmak istiyorum ve tek sp içinde tüm alanların insert veya delet işlemini yaptırmak istiyorum ama birinci alanın sp sini yaptıktan sonra kodun altına devam olarak ikinci alanın sp sini oluşturamıyorum ve hata veriyor.
iki ayrı alan diğer tabloda iki ayrı alana toplanacak veya çıkarılacak aradaki bağlantı nasıl oluşturulacak
update set tablo dan sonra toplama veya çıkarmayı belittikten sonra altına ikinci satır olarak diğer alanın değerlerini giriyorum ama hata veriyor. Aralara virgil mü konmalı, noktalı virgülmü, yoksa tek sql sayfasında hepsini tam kod olarak alt alta mı yazıp compile etmeli beceremedim
teşekkür ve saygılarımla