SP veya trigerla bakiye hesaplama..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

SP veya trigerla bakiye hesaplama..

Mesaj gönderen serkan »

Selam arkadaşlar..
Şimdi Stok Hareket tablom ve stokbakiye tablom var..Şimdi en basitinden yapmak istediğim şu; stokhareket tablosuna bir kayıt yaptığımda örnek aşağıda;

150 01 001 GİRİŞ 12 KG DEPO-01

gibi..şimdi burda DEPO-01 kodlu depoya 12 KG ürün girmiş..bir trigerla (AfterInsert) STOKBAKIYE tablosunda 150 01 001 stok kodu ile DEPO-01 depo kodu ile hiç kayıt varmı ona bakacak eğer yok ise STOKBAKIYE tablosuna aşağıdaki kaydı oluşturacak..

150 01 001 12 DEPO-01

bir dahaki sefer yine aynı stok kodu ve aynı depo kodu ile stokhareket tablosuna kayıt yapılırsa artık kayıt olduğundan miktarı - veya + değiştirecek..

Triger yazmada sorunum yok ama trigerda kayıt arama nasıl yapılır bilemiyorum..
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: SP veya trigerla bakiye hesaplama..

Mesaj gönderen mkysoft »

Kullandığınız veri tabanını yazmamışsınız. Mesala MySQL'de böyle bir aramaya ihtiyaç yoktur. Eğer INSERT ederken kayıt mevcutsa, güncellenmesini sağlayabiliyorsunuz SQL komutunuzda. http://dev.mysql.com/doc/refman/5.0/en/ ... icate.html
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Re: SP veya trigerla bakiye hesaplama..

Mesaj gönderen serkan »

Hocam kusura bakma Firebird 2.1 kullanıyorum..
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Re: SP veya trigerla bakiye hesaplama..

Mesaj gönderen serkan »

Yabancı bir kaynaktan gördüğüm şekliyle şu şekilde problem çözüldü..
Stokhareket tablosunun after insert trigerına;

Kod: Tümünü seç

  if (NOT exists (SELECT * FROM STOKBAKIYE WHERE STOKKODU=NEW.STOKKODU AND DEPOKODU=NEW.DEPOKODU)) then
      INSERT INTO STOKBAKIYE (STOKKODU,DEPOKODU,BAKIYE) VALUES(NEW.STOKKODU, NEW.DEPOKODU,(NEW.GIRIS-NEW.CIKIS));
  Else Begin
   UPDATE STOKBAKIYE
  SET
    STOKBAKIYE.BAKIYE=STOKBAKIYE.BAKIYE+
                           (NEW.GIRIS-NEW.CIKIS)
   WHERE
   NEW.STOKKODU=STOKBAKIYE.STOKKODU AND NEW.DEPOKODU=STOKBAKIYE.DEPOKODU;
şeklinde yazdığımda problem çözüldü, önce kaydı aryor, kayıt yok ise diğer tabloya ilk kaydı yapıyor, kayıt var ise sadece bakiyeyi hesaplıyor..
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: SP veya trigerla bakiye hesaplama..

Mesaj gönderen conari »

Güzelde delete ve updatede de trigger yazmalısın.:)
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Re: SP veya trigerla bakiye hesaplama..

Mesaj gönderen serkan »

biliyorum tabi onları yazacağımıda ancaki onlarda kaydı aramaya gerek yok direk update ile başlayan kısım yazılacağından zaten problemim o değildi...
Cevapla