[SORU]-MySQL Stored Procedure ?

Diğer 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ı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

[SORU]-MySQL Stored Procedure ?

Mesaj gönderen hi_selamlar »

S.A. arkadaşlar.

benim şöyle bir sorunum var. !

daha önce hazırladığım MySQL StoredProcedure var.
ve bu SP dışarıdanda bazı parametreler alarak çalışıyor.
bu parametreleri Where bölümde kullanıyorum.

Örnek..

Kod: Tümünü seç

SELECT *FROM TABLO
WHERE TABLO.ADI=PARAMATRE1
gibi.

benim ise şöyle bir şey yapmam lazım.
dışarıdan bir değişken tipine göre whereden sonra bir kod daha eklemek istiyorum ama bu kodu
parametre den işlem yapıp dada sonra Wherede kullanmak istiyorum.

Örnek.

Kod: Tümünü seç

SELECT *FROM TABLO
WHERE (TABLO.ADI=PARAMATRE1) 
IF (DISARIDAN_GELEN_PARAMETRE="OSMAN") THEN
"AND (TABLO.OKMU=1)"
END IF;
Bu işlemi nasıl yapabilirim. Bu bölümde takıldım.
Bilgisi olan arkadaşlar ilgilenirse çok sevinirim.

S.A.
Saygılar
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: [SORU]-MySQL Stored Procedure ?

Mesaj gönderen vkamadan »

Merhabalar ,
Bu iş için anahtar kelimeniz PREPARE ve EXECUTE deyimleridir, şöyle örnek verebilirim;

Kod: Tümünü seç

SET @sorgu_cumlesi =CONCAT("SELECT *FROM TABLO WHERE (TABLO.ADI=" , PARAMATRE1 , ")" )";
 
IF (DISARIDAN_GELEN_PARAMETRE="OSMAN") THEN  SET @sorgu_cumlesi = CONCAT(@sorgu_cumlesi , " " , "AND (TABLO.OKMU=1)") ;
END IF;

PREPARE sorgu FROM @sorgu_cumlesi;
EXECUTE sorgu;

Kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Re: [SORU]-MySQL Stored Procedure ?

Mesaj gönderen hi_selamlar »

S.A.
hocam paylaşım için teşekkür ederim.

Aacaba bunun daha basit bir yöntemi yok mu ?
Mese FireBird de bu işlem çok basit bir şekilde yapılıyordu.

Paylaşım için çok teşekkür ederim.

Saygılar.
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: [SORU]-MySQL Stored Procedure ?

Mesaj gönderen vkamadan »

Merhaba ,
Bildiğim kadarıyla dinamik sql cümlelerini oluşturup çalıştırmanın tek yolu bu evet çok pratik görünmüyor fakat bunun nedenin MySQL in string ifadelerde "+" operatorünü desteklememesi sebebiyle CONCAT fonksiyonuna başvuramamız olduğunu düşünüyorum yoksa çokta karmaşık ve anlaşılmaz durmuyor
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: [SORU]-MySQL Stored Procedure ?

Mesaj gönderen aslangeri »

s.a.
peki sorguyu şöyle yapsanız olmazmı?

Kod: Tümünü seç

select .... from Tableasd
where ((tabloalani=disardangelenparametre) or (disardangelenparametre="")) and
((tabloalani2=disardangelenikinciparametre) or (disardangelenikinciparametre=0))
...........
gibi.
dışardan gelen parametrelerin bir varsayılan değeri olmalı ve set edilmeyi unutulmamalı.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Re: [SORU]-MySQL Stored Procedure ?

Mesaj gönderen hi_selamlar »

S.A.
Hocam

CONCAT fonksiyonunu kullanırken senin verdiğin örnek gibi yan yana değilde alt altta yazmamızın bir mahsuru oluyormu?
sql cümlem baya uzun..

Örnek

Kod: Tümünü seç

set @deneme =concat('
select *from tablo
where tablo.adi="osman"
');
verdiğin örneği uyguladığımda daha önce çalışan fonksiyon şimdi çalışmıyor ve hata veriyor.

Kod: Tümünü seç

SQL Error: Unknown column 'TARIH1' in 'where clause'
Teşekkürler.
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: [SORU]-MySQL Stored Procedure ?

Mesaj gönderen vkamadan »

deyimleri tamamlamanız gerekir stringlerin ucunu kapatarak alt alta yazabilirsiniz,
hata aldığınız kodun tamamını atarsanız bir gözatalım
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Re: [SORU]-MySQL Stored Procedure ?

Mesaj gönderen hi_selamlar »

hocam kod örneğini özel mesaj olarak gönderim.
bakıp bilgi verirsen çok sevinirim.

saygılar.
Herkes cahildir, bazi konularda.
Cevapla