Firebird içerisinde şartlı yapı (procedure oluşturamıyorum)

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
tr69
Üye
Mesajlar: 2
Kayıt: 11 Oca 2012 02:53

Firebird içerisinde şartlı yapı (procedure oluşturamıyorum)

Mesaj gönderen tr69 »

CREATE PROCEDURE URUNGETIR
(
ID INTEGER
)
AS
begin
if (not exists (select * from tablo1 where URUNID=ID)and (select * from tablo2 where URUNID=ID))
THEN
begin
select * from tablo3
end else
print 'mevcut'
end

şeklinde bir yapı kurmak istiyorum ama herşeye kızıyo :) hatam nerede acaba arkadaşlar bir göz atabilirmisiniz
aslında yapmak istedğim şey dışarıdan gelen id yi iki farklı tabloda kontrol etmek var mı yok mu buna bakmak arkadaşlar SQL server 2008 R2 için bu tarz bir kullanım oluyordu sanırım denemdim ama firebird de if kullanımına print e kızıyo
anemos
Üye
Mesajlar: 110
Kayıt: 02 Nis 2007 07:51
Konum: Sakarya / Hendek

Re: Firebird içerisinde şartlı yapı (procedure oluşturamıyor

Mesaj gönderen anemos »

Merhaba;

Firebird' de prosedur yazarken konuyu biraz açmak gerekiyor. :)

Kod: Tümünü seç

CREATE PROCEDURE URUNGETIR
(
ID INTEGER
)
RETURNS(
Buraya 'select * from tablo3' den 
dönecek alanlar ve tipleriyle...
)
AS
begin
if (not exists (select * from tablo1 where URUNID=:ID)and (select * from tablo2 where URUNID=:ID))
    THEN
        begin
            for 
             select deg1,deg2,... from tablo3 into :deg1, :deg2,... DO
             BEGIN
                SUSPEND;
             END
        end 
else
   deg1 = 'mevcut';
   deg2 = null;
   .
   .
end
tr69
Üye
Mesajlar: 2
Kayıt: 11 Oca 2012 02:53

Re: Firebird içerisinde şartlı yapı (procedure oluşturamıyor

Mesaj gönderen tr69 »

/****************
merhaba anemos cevabın için teşekkür ederim gün içinde yoğunluktan dönemedim c# içerisinde 2 adet radio butonum ve listwiev im var vt de ürünid nin fk olduğu iki adet tablom var dönecek olan değerler ürünün içeriği olacak hepsi okadar firebird e 2 yıl kadar uzak kalınca syntax hak getire haliyle iş yerine gidince bunu bir deneyeceğim tekar teşekkür ederim çalışmalarınızda başarılar. :bravo:
*****************/
Biraz daha açmak istiyorum konuyu ;
Veritabanını düzenlemek için kullandığım program Firebird Maestro idi yazmış olduğunuz şekilde bir kaç deneme girişimim başarısız oldu İnterbase için bir kaç deneme yaptım yine sonuç alamadım.

İstediğim Sp şöyle olmalı ;
ÜrünKartı ana tablom urunID ve UrunAdi var
ürün detay1 ve ürün detay 2 diye iki adet tablom özel şartlara göre ürünid ya üründetay1 tablosunda yada üründetay2 tablosunda olmak zorunda ikisinde de yok ise ürünkartından veri getirmek istiyorum varsa zaten sorun yok demektir
anemos
Üye
Mesajlar: 110
Kayıt: 02 Nis 2007 07:51
Konum: Sakarya / Hendek

Re: Firebird içerisinde şartlı yapı (procedure oluşturamıyor

Mesaj gönderen anemos »

Her iki detay tabloda yoksa urun kartını döndürecek. Yapının prosedur olması şart mı onu bilemem...

Kod: Tümünü seç

select
 urunid,
 urunadi
from urun_karti
 where
  exists(select * from urun_detay1
   where urun_detay1.urunid=urun_karti.urunid)
 and
  exists(select * from urun_detay2
   where urun_detay2.urunid=urun_karti.urunid)
Cevapla