Donanım Haber Forum
Ana Sayfa | Kayıt ol | Profilim | Gelen Kutusu | DH Hız Aşırtma VT | Adres Defteri | Email'le üyeliklerim | Benim forumlarım | Fotoğraf Albümleri
Favorileriniz | Üyeler | Arama | SSS | Şikayet listesi | Uyarı listesi | Nick işlemleri
Stok Kontrolu Yapan Trigger Oluşturmak???

İlgili konuları bak: (bu forumda | tüm forumlarda)

Bu isimle girdiniz: Guest
Bu konudaki kullanıcılar: hiç
  Basılabilir versiyon
Tüm forumlar >> [Web Tasarım - Programlama] >> Yazılım Geliştirme >> MsSQL / MySQL >> Stok Kontrolu Yapan Trigger Oluşturmak??? Sayfa: [1]
Giriş
Mesaj << Daha eski konu   Daha yeni konu >>
coderMX

 

Mesaj: 622


 27 Ağustos 2008; 22:01:34 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz.

Mrb arkadaşlar,

Bana stok kontrolu yapan bi trigger lazım.
Urunler tablosundaki her hangi bir ürünün stok adedi 20'nin altına düştüğü saman SatinAlinacakUrunler adındaki tabloya insert yapacak bi trigger lazım...

Ben şuan için buraya kadar geldim. Trigger içinde if kullanıyor muyuz??? Ayrıca @UrunId,@UrunAd,@StokAdet bunlar URUNLER tablosundan alınacak değerler...

Her satış yapıldığına trigger kontrol edicek kalan StokAdet 20'nin altına indi mi diye???

create trigger SatinAlinacakUrunler

on SatınAlinacakUrunler

insert

As

Declare @StokAdet,
Declare @UrunId,
Declare @UrunAd

begin

Insert SatınAlinacakUrunler values (UrunId=@UrunId,UrunAd=@UrunAd,StokAdet=@StokAdet)

end

---------------------------------------------------------

create trigger SatinAlinacakUrunler

on SatınAlinacakUrunler

insert

As
Declare @UrunId as int,
Declare @StokAdet as int,
Declare @UrunAd as nvarchar(50)

Set @UrunId = select UrunId from urunler where urunId=@urunId,
Set @UrunId = select UrunId from urunler where urunId=@urunId,
Set @StokAdet = select stokadet from urunler where stokadet=@stokadet,
Set @UrunAd= elect UrunAd from urunler where urunAd=@UrunAd

begin

Insert SatınAlinacakUrunler values (UrunId=@UrunId,UrunAd=@UrunAd,StokAdet=@StokAdet)

end

Arkadaşlar buraya kadar geldim? Doğru mu gidiyorum???


< Bu mesaj bu kişi tarafından değiştirildi coderMX -- 27 Ağustos 2008; 22:07:50 >


_____________________________

cs7

 

Mesaj: 93


 27 Ağustos 2008; 23:26:49 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz.

niye bir query ile stok adeti 20 altindaki urunleri secmeyi tercih etmiyorsun.
select UrunId as SatinAlinacakUrunId, urunAd as SatinAlinacakUrunAd, StokAdet as SatinAlinacakUrunAdet from urunler where StokAdet < 20
gibi.
trigger bir tablodaki degisiklikleri takip eder. (insert update delete) ve takip ettigi degisiklik meydana gelince triggerin icindeki kod calisir. simdi senin bu triggeri urunler tablona yerlestirip ordaki stokadedi ndeki degisikliklere gore satinalinacakurunler tablonu guncellemen gerekecek. yani satinalinacakurunler tablosuna koydugun trigger urunler tablosundaki stokadedi degisiklikleri sebebi ile calismaz. bir oku istersen ama onerdigim query i de bir dusun derim

http://www.devarticles.com/c/a/SQL-Server/Using-Triggers-In-MS-SQL-Server/
coderMX

 

Mesaj: 622


 27 Ağustos 2008; 23:41:40 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz.


quote:

Orjinalden alıntı: cs7

niye bir query ile stok adeti 20 altindaki urunleri secmeyi tercih etmiyorsun.
select UrunId as SatinAlinacakUrunId, urunAd as SatinAlinacakUrunAd, StokAdet as SatinAlinacakUrunAdet from urunler where StokAdet < 20
gibi.
trigger bir tablodaki degisiklikleri takip eder. (insert update delete) ve takip ettigi degisiklik meydana gelince triggerin icindeki kod calisir. simdi senin bu triggeri urunler tablona yerlestirip ordaki stokadedi ndeki degisikliklere gore satinalinacakurunler tablonu guncellemen gerekecek. yani satinalinacakurunler tablosuna koydugun trigger urunler tablosundaki stokadedi degisiklikleri sebebi ile calismaz. bir oku istersen ama onerdigim query i de bir dusun derim

http://www.devarticles.com/c/a/SQL-Server/Using-Triggers-In-MS-SQL-Server/


SQL ödevinde böyle bi şart var. İki adet trigger lazım. Birinci trigger, Satış Tablosuna yeni satış kaydı eklendiği zaman, Urunlerden Stok adeti düşmeli, ikinci trigger eger stok adet 20'nin altına indi ise SatinAlinacakUrunler tablosuna stok adeti düşen urunu eklemeli...

SQL Ödev;
Sistem şirketin elindeki stokları kontrol edebiliyor olmalı.

Müşterilere yaptığımız satışları görebiliyor olmalıyız.

Şirket personeli programı kullanabilmek için bir kullanıcı adı ve şifre ile sisteme giriyor olmalı.

Satışını yaptığımız parçaların markası modeli ve kategorisi olmalı.

Marka, model veya kategoriye göre ya da 2 li ya da 3 lü kombinasyonlarına göre arama yapılabiliyor olmalı.

Sistem hızlı cevap üretiyor olmalı.

Raporlamaya açık bir sistem olacağı için joinler ile oluşturulmuş view ve procedure leri tasarlamalısınız.

Satış yapıldığı anda stok güncellenmeli ve bu işlem otomatik yapılıyor olmalı.

Elimdeki parçalardan herhangi birinin stok derecesi 20 nin altına düştüğünde özel bir tabloya satın alma amacı ile kayıt yapılmalı.


_____________________________

cs7

 

Mesaj: 93


 28 Ağustos 2008; 23:01:01 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz.

urunler tablosunda stok adeti update olunca satinalinacaklar tablosunda yapilmasi gereken degisiklikleri yapacak triggeri ben yazayim, sen urunler tablosunda delete/insert islemleri olunca calismasi gereken triggeri yazarsin bakarak. simdi urunler tablosunda stok adeti kolonunda bir degisiklik olursa (ilk if); yeni stokadet 20 den dusukse ve satinalinacakurunler tablosunda o urun yoksa insert ediliyor(daha onceden satinalinacaklara eklenmis olabilir dolayisi ile yoksa insert etmek yeterli). yeni stokadet 20 ye esit veya buyukse ve satinalinacaklar tablosunda boyle bir urun varsa da delete ediliyor.
*edit:bazi if satirlari tek satira sigmamis, onlari ayni satira yaz sorun cikmasin.


create trigger UpdateSatinAlinacaklarUrunler
on dbo.Urunler
after update
as
begin
declare @urunid int
select @urunid = UrunId from inserted
declare @stokadet int
select @stokadet = StokAdet from inserted
declare @urunad nvarchar(50)
select @urunad = UrunAd from inserted


if update(StokAdet)
begin
if(@stokadet < 20) and not exists(select UrunId from SatinAlinacakUrunler where SatinAlinacakUrunler.UrunId = @urunid)
begin
insert into SatinAlinacakUrunler values(@urunid, @urunad)
end
else if(@stokadet >= 20) and exists(select UrunId from SatinAlinacakUrunler where SatinAlinacakUrunler.UrunId = @urunid)
begin
delete from SatinAlinacakUrunler where SatinAlinacakUrunler.UrunId = @urunid
end
end
end


< Bu mesaj bu kişi tarafından değiştirildi cs7 -- 28 Ağustos 2008; 23:00:42 >
coderMX

 

Mesaj: 622


 31 Ağustos 2008; 17:57:00 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz.

Mrb, aşağıdaki sorguyu acaba doğru mu yazdım? Satislar tablosuna yeni kayıt eklendiği zaman, kaç adet ürün satıldıysa, ürünler tablosundan o kadar adet düşücek. (Satılan üründen)

create trigger SatisDetaydanStokAdediUrunlerdenDus

on dbo.SatisDetaylari

for insert
as
begin
declare @UrunId int
declare @StokAdet int
Select @UrunId = UrunId from inserted
Select @StokAdet = SatilanAdet from inserted

Update dbo.Urunler set StokAdet=StokAdet - @StokAdet where UrunId=@UrunId
end


< Bu mesaj bu kişi tarafından değiştirildi coderMX -- 31 Ağustos 2008; 18:42:06 >


_____________________________

cs7

 

Mesaj: 93


 31 Ağustos 2008; 20:14:16 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz.

dogru gibi duruyor (satisdetay tablonda stokadet diye bir kolon yok demi? son update de kolon isimleri karisabilir. kolonun basina ait oldugu tabloyu ekleyebilirsin.). tablolari sallama birkac deger ile doldurup denemeler yapabilirsin. bakarak herseyi goremeyebiliriz. ucuk kacik degerler vererek acaba ne olur diye calistiracagin queryler kodundaki hatalari gormeni kolaylastirir. mesela satisdetaydan 100 adetlik bir dusus yapilmasi istendi bu triggerdan. sorgusuz sualsiz yapar bunu bu trigger. halbuki stokda o kadar mal olmayabilir. (bu kontrolu baska yerde yapmadigini varsayiyorum.)
coderMX

 

Mesaj: 622


 1 Eylül 2008; 7:56:12 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz.


quote:

Orjinalden alıntı: cs7

dogru gibi duruyor (satisdetay tablonda stokadet diye bir kolon yok demi? son update de kolon isimleri karisabilir. kolonun basina ait oldugu tabloyu ekleyebilirsin.). tablolari sallama birkac deger ile doldurup denemeler yapabilirsin. bakarak herseyi goremeyebiliriz. ucuk kacik degerler vererek acaba ne olur diye calistiracagin queryler kodundaki hatalari gormeni kolaylastirir. mesela satisdetaydan 100 adetlik bir dusus yapilmasi istendi bu triggerdan. sorgusuz sualsiz yapar bunu bu trigger. halbuki stokda o kadar mal olmayabilir. (bu kontrolu baska yerde yapmadigini varsayiyorum.)


Arkadaşım ben bu triggerları ve veritabanı backup dosyasını gönderdim hocaya... Bakalım kaç alıcam SQL ödevinden.

SatinAlinacakUrunler Tablosunda vs. sürükle bırak ile yaptığım için StokAdet vs. sütünlarda problem yok. Yani var...

Ben senin yazdığın tabloda gördüm. TabloAdi.SutunAdi bunu biz hiç boyle yazmamıştık. Sadece inner join sorgularında. Products as p >>>> p.firstname, p.lastname vs. diye gosterilmisti.

_____________________________

Sayfa:   [1]
Tüm forumlar >> [Web Tasarım - Programlama] >> Yazılım Geliştirme >> MsSQL / MySQL >> Stok Kontrolu Yapan Trigger Oluşturmak??? Sayfa: [1]
Buraya git:



Donanım Haber Video İnceleme
MAGICOOL Sıvı soğutma sistemi
MAGICOOLun giriş seviyesi sıvı soğutması
Sapphire HD4870 512MB
Sapphire HD4870 en yeni oyunların karşısında
 


Yeni mesajlar Yeni mesajlar yok
Popüler konu, yeni mesajlar ile Popüler konu, yeni mesajlarsız
Kilitli yeni mesajlar ile Yeni mesajlar olmadan kilitli
 Yeni mesaj at
 Mesaja cevap at
 Yeni anket aç
 Oy kullan
 Kendi mesajımı sil
 Kendi konumu sil
 Mesaja değerlendir
 Mesajımı DH blog sayfama ekle
 
Reklamlar




















Videolarımız
 
WEB Dersleri Blog lara giriş Bölüm 1/3

WEB Dersleri: RSS Nedir?


Forum Software powered by ASP Playground Advanced Edition 2.3
Copyright © 2000 - 2006 ASPPlayground.NET


0.531