| bobasturk | 23.07.2005 - 09:02:22 |
| Merhabalar, herkeze hayırlı sabahlar.
CREATE PROCEDURE SPI_AIDAT_ODEME ( BINA_ADI VARCHAR(40), DAIRE_NO INTEGER, KALAN FLOAT) AS DECLARE VARIABLE DLR_KAYIT_SAYISI INTEGER; begin select count(*) from DAIRE_DURUM where BINA_ADI =:BINA_ADI and DAIRE_NO=:DAIRE_NO INTO DLR_KAYIT_SAYISI; if (DLR_KAYIT_SAYISI=0) then insert into DAIRE_DURUM(BINA_ADI,DAIRE_NO,BORCU) values(:BINA_ADI,:DAIRE_NO,0); update DAIRE_DURUM set BORCU = BORCU+:KALAN where BINA_ADI = :BINA_ADI and DAIRE_NO=:DAIRE_NO; End yukarıdaki sp de yapmak istediğim dairelerin aidat giriş lerini tutmak ve daire durum tablosunda ödeme toplamlarını, ödemesi gerekenler toplamını ve bunların fark durumlarını tutmak isteme amacı ile yaptım. stok takibi benzeri bişi. sp ler durum tablosuna otomatik topluyor ve farklarını alıyorum. amacım paket prg. yapmaktı ve sp nin insert, delet veya update esnasında bina adı ve daire no ile işlem yapması idi. yukarıdaki sp çalışıyor. nasıl çalışıyor bina adı değişince aynı daire no olanları ayırıp işlem yapabiliyor fakat bina adı aynı olunca iş karışıyor ve işlem yapmayıp exception hatası veriyor. tablolar şöyle DAİRE BİLGİ idno binaadı daireno adısoyadı AİDATODEME idno binaadı daireno aidattutarı odenenaidat BORCODEME idno binaadı daireno odenentutar DAİREDURUM binaadı daireno aidattoplamı od-aidattoplamı borcu bu sp yi nasıl düzenlemeliyim ki işlemlerini bina adı ve daire no yu göz önüne alarak yapsın. yani kontrolu iki alan ile yapsın. şimdilik durumu değiştirip paket prg den çıkardım diğer tek alanlı olarak yapıyorum. teşekkür ve saygılarımla | |
| rsimsek | 23.07.2005 - 14:04:08 |
| Merhaba hocam, bina adları aynı olsa da normalde blok adı ile birbirlerinden ayrılmaları gerekir. Yine de en iyi kullanım string key ler kullanmayıp bina isimlerinin olduğu bir tabloda ID verip isimleri kaydetmek ve detay tablosunda da bu ID ye bağlı daire no ve ilgili kişi isimlerini kaydetmek. Böylece veritabanına hem perfomans sağlarsın (çünkü sayısal alanlarda daha az işlem gerektirdiğinden hızlı çalışır) hem de aynı isimli binalar olsa da primary key ID olduğundan unique liği bozmamış olursun. | |
| bobasturk | 23.07.2005 - 15:52:55 |
| Merhaba ustam,
bu meşgul durumunda dahi cevap verdiğin için teşekkürler. utanıyorum falan desen yetmez heralde ama yapamıyorum dediğim şey kullanıcı hatası imiş yani benim hatam meğersem tanımlaması yapılmamış daireye işlem yapmaya çalışıyormuşum. o bölüme hemen mesaj verdirmeliyim. peki ustam yukarıdaki sp de bi aksilik yok dimi. çalışıyor ama usta gözü ile bakınca diye soruyorum. çalışıyor olması en uygun kod olduğu anlamına gelmiyor. sp de yapmak istediğim çalışırken iki alanı birden kontrol etsin iki alan uyuşuyorsa üzerine işlemi yapsın uyuşmuyorsa yeni satır açsın. bilmem anlatabildimmi? yeni bir sorunum daha çıktı formun birini ana menuden tıklayınca açıyor iyi güzel kapatıp tekrar açmak isteyince access violation hatası alıyorum. prg kapatıp açmam gerekiyor. nerde yanlış var bulamadım ama baya uğraştıracak heralde. teşekkür ve saygılarımla kolay gelsin. | |