stored procedur nasıl yazmalıyım

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

stored procedur nasıl yazmalıyım

Mesaj gönderen bobasturk »

Merhaba ustalarım, hayırlı bayramlar.

Kendimi geliştirmek adına oturduğum bina için bi şeyler yapmak istedim. aidat takibi, kasa takibi gibi falan.

veritabanım firebird.

pek çok işi vt tarafında yapmak için sp ve trigger ler kullandım. delphi tarafında sadece veri girşleri yapılıyor.

bi yerde takıldım. kasa gelir ve kasa gider tablolarına veri girişinde kasadurum tablosununun gelir ve gider kısmına sp ler vasıtası ile veriler işleniyor.

bu kasadurum tablosunda bide fark alanı var ben burada gelir ve gider alanının farkını vt kısmında kendisi yapmasını istiyorum. diğer insert sp leri gibi yapmak istedim olmadı yolunu bana söyleyebilirmisiniz acaba

teşekkür ve saygılarla
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
Calculated alan Kullanabilirsin.
şuan daha detay yazamıyorum kusura bakma.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

ustam yazdığım soruyu okudum da hatalı olduğunu anladım.
burada üç ayrı tablo var

kasagelir
kasagider
kasadurum

kasagelir ve kasagider tablolarına delphi tarafında veri girişi için form oluşturucam ve buradan veri girşler oldukça kasadurum tablosundaki gelir ve gider alanlarına toplama yapıcak. burayı hallettim.

kasadurum tablosu delphi tarafında veya vt tarafında manuel veri giriş olayı yok sadece takip amaclı görüntü veya çıktı alınacak.

kasadurum tablosu içinde dönem, gelir, gider ve fark alanları var. dönemi, geliri ve gideri kasagelir ve kasagider tablolarına uyguladığım sp ler ile dolduruyorum. takıldığım nokta kasadurum tablosundaki fark alanına gelir ve gider alanlarının farkını aldırarak yazmasını sağlamak.

bu olayı diğer insert sp leri gibi yapmak istedim olmadı. şeyleki


Kod: Tümünü seç

CREATE PROCEDURE SPI_KASAGELIR (
    DONEMI VARCHAR(10),
    DEVIR FLOAT,
    AIDAT FLOAT,
    ALACAK FLOAT,
    FAIZ FLOAT,
    HACIZ FLOAT,
    DIGER FLOAT)
AS
DECLARE VARIABLE DLR_KAYIT_SAYISI INTEGER;
begin 
  select count(*) 
  from KASADURUM where DONEMI = :DONEMI
  INTO DLR_KAYIT_SAYISI; 
  if (DLR_KAYIT_SAYISI=0) then 
    insert into KASADURUM(DONEMI,GELIR) values(:DONEMI,0);
  update KASADURUM set
    GELIR = GELIR+:DEVIR
  where DONEMI = :DONEMI;
buradaki alan adlarını ve tabloları uyarlayarak yapmak istedim olmadı

calculated alan oluşturup burada çıkan sonucu kasadurum tablosunun fark alanınan yazdırma veya gelir ve gider ler için yazılan sp lerin aynını fark alanı içinde yazarsam olur gibime geliyor ama sanki uzuyacakmış gibi geliyor. vt kısmında sp ile yapılırsa daha kısa ve güzel olucak gibi geliyor.

dar zamanında vakit ayırdığın için teşekkür eder hayırlı teskereler dilerim.
kolay gelsin
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

Hocam tamam işte Aslangeri nin dediği gibi Calculated ala yaparsın , olur ..

Kod: Tümünü seç

create TABLE1 (
  ALAN1    integer
  ALAN2    integer  
  ALAN3    computed by (ALAN1-ALAN2)   integer
)
Sintaks hatası olabilir , ama böyle birşey yapabilirsiniz..
Cevapla