Arkadaşlar, SP yazmayı öğrenmeye çalışıyorum. Daha önce kullanmadım dolayısıyla ufak tefek sıkıntılarım karşısında yardımlarınızı bekliyorum.
Sorum şu: cari, fatura ve fatura detay isimli üç tablom var (master-detay yapıda). Yazdığım (kopya çekerek) bir sp ile ki şu
Kod: Tümünü seç
create or alter procedure spi_faturadetay (
cari_id integer,
alis_no integer,
alis_miktari decimal(6,4),
alis_kdv decimal(6,2),
alis_iskonto decimal(6,4),
alis_fiyat decimal(6,4))
as
declare variable dlr_kayitsayisi integer;
begin
select count(*) from fatura_tbl where als_id = :alis_no
INTO dlr_kayitsayisi;
if (dlr_kayitsayisi=0) then
insert into fatura_tbl(als_crid, als_id, als_tutar, als_tarih, als_faturano, als_kasiyer)
values(:cari_id, :alis_no,0, 'today', 'fatura1', 1);
update fatura_tbl set
als_tutar = als_tutar+(:alis_miktari*(1+(:alis_kdv/100))*(1-(:alis_iskonto/100))*:alis_fiyat)
where als_id = :alis_no;
End
Kod: Tümünü seç
execute procedure spi_faturadetay (new.fd_crid, NEW.fd_alsid, NEW.fd_miktar, NEW.fd_kdv, NEW.fd_iskonto, NEW.fd_fiyat);
Fakat bu işlemi delphi tarafında cr_id, fatura_id alıyorum ama atamasını bir türlü yapamadım. Delphi tarafında parametreleri nasıl atayacağız. Yani faturadetay tablosundaki faturaid alanına yeni oluşturulmuş (yukarıdaki SP ile) bir kaydın id'sini nasıl alabilirim.
D2007 ve firebird kullanıyorum.