Stored Procedure Yardim

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
mahmut
Üye
Mesajlar: 82
Kayıt: 21 May 2004 11:00
Konum: KONYA
İletişim:

Stored Procedure Yardim

Mesaj gönderen mahmut »

Selamun Aleykum. Arkadaslar biliyorum kızacaksınız belki. hep aynı sorular soruluyor diye.. Şimdiden Özürdiliyorum. Aramada bir çok cevap ve örnekler var ama bir türlü beceremedim.
Sorum şu olacak ben Stored Procedure ile vt yapmak istiyorum Firbird veritabanı kullanmak istiyorum ve Ibexpert yardımcı programı ile çalışmayı düşünüyorum.
Stored Procedure'nun Ib experte yazıldıgını biliyorum ama Stored Procedure 'de kullanılacak komutlar tam olarak nedir hangisi ne işe yarar.
Ve Bu SP'yi delphinin içerisinde nasıl nerede ve ne şekilde kullanmamız gerekir.
Makaleleri inceledim seminer7 deki örnegide inceledim. fakat orada sysbase için yada dbworkstation içindi yanlış hatılamıyorsam örnekleme programlar yapıldı.

ben stok giriş çıkış gibi olayları sp üzerinden yapmayı arzu etmiştim. bunu tam olarak acıklayıcı bir şekilde bu başlık altında anlatmanız mümkünmüdür acaba. Çünki gerçekten anlayamadım. işlerin yogunlugu sebebiylede fazla bakamadım acıkcası...

Sizlerden zamanınızı ayırdıgınız için teşekkür ediyor zamanınızı aldıgım için özür diliyorum. hakkınızı helal edin
Hayat Hayatı Anlamaya Yetmeyecek Kadar Kısadır. Önemli Olan Hayatı Anlamaya Çalışmak Değil Hayattayken Hayatta Olan İnsanlara Bir Eser Bırakabilmek veya Onlara Yardımcı Olabilmektir.
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Mesaj gönderen hi_selamlar »

mrb.

arkadaşım anlıyorum seni ama inan sitede o kadar çok örnek varki.
bunu defalarca anlatmak bilemiyorum yani.

StoredProcedure diye arat.
search.php

kolay gelsin.
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Re: Stored Procedure Yardim

Mesaj gönderen rsimsek »

a.s.
mahmut yazdı:...Sorum şu olacak ben Stored Procedure ile vt yapmak istiyorum Firbird veritabanı kullanmak istiyorum ...
Burada kasıt vt içinde SP kullanımı mı?

Stored Procedure (SP) leri SELECT ile başa çıkamayacağımız ve delphi tarafta yapıyormuşuz gibi VT tarafta yapabileceğimiz bir yığın işi yapmak için kullanırız. Gerekiyorsa parametre gönderip eğer bir değer döndürecekse de dönüş parametreleri (return) tanımlarız. SP içinde kullanılacak her SUSPEND komutu o noktada dönüş parametrelerini dışarı atar. Birden fazla SUSPEND kullanılabilir. Parametre yoksa SUSPEND e de gerek yoktur. SP de Select, Insert, Delete ve Update komutlarını birlikte kullanabilirsiniz. Bir örnek;

Kod: Tümünü seç

CREATE PROCEDURE SP_YUVARLA(
    MIKTAR DOUBLE PRECISION,
    YUV_BASAMAK INTEGER,
    STOK_BIRIM_ID__ INTEGER)
RETURNS (
    YUVARLANAN DOUBLE PRECISION)
AS
BEGIN
  IF (YUV_BASAMAK IS NULL) THEN YUV_BASAMAK = 3;
  IF (STOK_BIRIM_ID__ < 1) THEN
  BEGIN
    YUVARLANAN = MIKTAR;
    IF (STOK_BIRIM_ID__ = 0) THEN YUVARLANAN = YUVARLANAN / 1000;

    IF (YUVARLANAN < 1.0 AND YUV_BASAMAK < 2) THEN
      YUVARLANAN = CAST(YUVARLANAN AS NUMERIC(10, 2));
    ELSE IF (YUVARLANAN > 1.0 AND YUVARLANAN <= 3.0 AND YUV_BASAMAK = 0) THEN
      YUVARLANAN = CAST(YUVARLANAN AS NUMERIC(10, 1));
    ELSE
    BEGIN
      IF (YUV_BASAMAK = 0) THEN
        YUVARLANAN = CAST(YUVARLANAN AS NUMERIC(10, 0) );
      IF (YUV_BASAMAK = 1) THEN
        YUVARLANAN = CAST(YUVARLANAN AS NUMERIC(10, 1) );
      IF (YUV_BASAMAK = 2) THEN
        YUVARLANAN = CAST(YUVARLANAN AS NUMERIC(10, 2) );
      IF (YUV_BASAMAK = 3) THEN
        YUVARLANAN = CAST(YUVARLANAN AS NUMERIC(10, 3) );
    END
  END
  ELSE
    YUVARLANAN = CAST(MIKTAR + 0.499 AS INTEGER); -- kilo haricindekiler için bir üste tamamla.
  SUSPEND; -- burada dönen değer dışarı atılıyor.
END
Kullanımı da;

Kod: Tümünü seç

SELECT YUVARLANAN FROM SP_YUVARLA(123.5678, 2, 2)

En güzel yanı da bir tablo gibi SELECT içinde kullanılmalarıdır.
FOR SELECT ...
IF (...) THEN ...
WHILE (...) DO ...
BEGIN
...
END gibi kodlamaları ve daha fazlasını aştırıp örneklerde bulabilirsiniz.
http://www.firebirdsql.org/manual/migra ... yntax.html
http://www.ibphoenix.com/main.nfs?a=ibp ... ro_sp_trig
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla