| gkimirti | 18.09.2003 - 13:43:01 |
| ilk önce bu mesajı fahrettin beyin makalesinin ardına ekliyeyim dedim sonra vazgecip buraya bir baslık acıp atmak daha uygun geldi
öncelikle makale cok guzel. kafamdaki bir cok sey yerine oturdu verdiginiz uygulamayı yaptım (fb1.5 da ibexpert ile) lakin bir sorun var gibi urun tablosundaki update triggeri urun_no degistirilirse urun_giris tablosundaki ilgili urun_no alanlarını guncelliyor,guzel ama urun_giris tablosu bu guncelleme sonucunda urun_giris_update triggerini cagırıp stok ta bir hareket olmamasına ragmen urun tablosundaki urunun miktarını ikiye katlıyor biraz uzerinde oynadım ama olmadı ilgili trigger asagıda procedureler sizin kodladıgınız gibi bir degisiklik yapmadım CREATE TRIGGER TUPD_URUN_GIRIS FOR URUN_GIRIS ACTIVE BEFORE UPDATE POSITION 0 AS begin EXECUTE PROCEDURE SPD_URUN_GIRIS OLD.URUN_NO, OLD.GIRIS_MIKTARI; EXECUTE PROCEDURE SPI_URUN_GIRIS NEW.URUN_NO, NEW.GIRIS_MIKTARI; end bu konu takıldı kafama sabahtan beri ugrasıyorum boyle bir uygulama cok faydalı olacak bu mevzuları ogrenmek icin amam ben takıldım mı bir nokta da (kod yazarken) onu asana kadar bir sey yapamıyorum, huyum kurusun iste :? neyse yine de makale icin cok tesekkurler Sp le ile Rapor hazırlama kısmını da sabırsızlıkla bekliyorum Tesekkurler | |
| fahrettin | 18.09.2003 - 16:07:19 |
| Anlasilir olmasi icin örneği basit tutalım derken bu konu ile ilgili klasik bir hatanın içine düştük.
URUN tablosundaki URUN_NO alanını güncelemek istendigiğinde URUN_GIRIS ve URUN_SATIS tablolarındaki URUN_NO alanlarının da güncellenmesi referential integrity geregi yapılıyor. Bu doğal fakat bunun dezavantajı URUN_GIRIS'in update triggeri çalişiyor ve de de eski URUN_NO lu STOK_MIKTARI'nı azaltıyor ki yok artik oyle bir satir. Yenisini de arttiriyor. Dolayısıyla çift girişer oluıyor. Aslında gerek stok gerekse cari hesapları tutmak için ayrı bir tablo kullanırız. Şöyleki URUN_STOK isimli bir tabloda sadece URUN_NO ve STOK_MIKTARI şeklinde iki alan olur. Bu tablo'nun diğer tablolarla bir referential integrity ilişkisi olmaz. Bu tabloda başlangıçta hiç kayıtta olmaz. triggerlar vasıtasıyla gerekirse kayıot eklenip gerekli updateler yapılır. Aslında bunu bir kural olarak dikkat ederiz. Triggerlar vasıtasıyla update edilen bu tur stok ve cari tabloları ayrı tablolar olur ve diğer tablolarla bir ilişkisi olmaz. Ben örneği daha basit olarak planlayım derken bu hatanın içine düştüğümü farkedemedim. :( Makaleyi bu duruma uygun bir şekilde düzenleyeceğim. ikazınız için teşekkür ederim.... | |
| gkimirti | 18.09.2003 - 16:29:10 |
| cok tesekkurler acıklamalar icin
bu isin kitabını okumayınca (vt programlama) bazı seylerin yaklasım mantıgınıda bilmiyoruz.yavas yavas bir seyler gelişiyo oyleki uzayda bir nesne gibi gelirdi client/server vt (veri tabanı) programlama ewt sizin de acıklamalarınız ile bayagı biseyler ogrendim allah razı olsun sizden tesekkurler | |
| fahrettin | 19.09.2003 - 07:51:03 |
| estağfirullah, Allah cümlemizden razı olsun...
URUN_STOK şeklinde ayrı bir tabloyu ve bu duruma göre değişen stored procedure kodlarını yazdım. Trigger kodlarına birşey değişmiyor. Bir de SPD_URUN_GIRIS procedure'unun kodunu eklemeyi unutmuşum sanıyorum onu da ekledim. Kolay gelsin..... | |