Program icerisnde viewe parametre gondermek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Program icerisnde viewe parametre gondermek

Mesaj gönderen musti »

s.a.
view de islem_tarihinin verilen aralıklar arasında olması icin ve tarih verilmemisse bu sartın gecilmesini saglayamadım nerde yanlıs yapıyorum acaba

create view cari_liste ( Cari_kod,Cari_isim,b, a,tarih,tarih2)
as
select cari_kod,cari_isim,sum(hareket.borc_TL)as b,sum(hareket.alacak_TL)as a from kart,hareket
where kart.cari_kod=hareket.cari_kod
and hareket.islem_tarihi between =:gelen_tarih1 and gelen_tarih2

group by cari_kod ,cari_isim
;
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

View'e parametre geçilmiyor bildiğim kadarıyla, sp yazabilirsiniz bunun için..
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Mesaj gönderen musti »

:(
viewmi sp mi szaten karar verememistim hangi si hızlı hangis iyi diye
hep view yaptım simdi sp cevirecem


Master detail iliskisinde foreng key mi kullanam mantıklı yok sa tirger mi ?
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

oracle da ben view i normal table gibi sorgulayabiliyorum

select * from v_table where ........

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Mesaj gönderen musti »

hocam firebird de bu olmuyor herhalde
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Hayır sorgulayabilirsiniz ancak dışardan parametre geçemezsiniz (bildigim kadarıyla..).
doganzorlu
Kıdemli Üye
Mesajlar: 395
Kayıt: 22 Tem 2004 09:15
Konum: İzmir
İletişim:

Mesaj gönderen doganzorlu »

Selam,

Soruna neden olan view içinde bir aggregate fonksiyonu kullanılması ve bağlı olarak gruplamanın yapılması. Gruplamaya esas olan veri seti, tarih alanı üzerinde filtrelendiğinde oracle da olsa bu şekilde kullanamazsınız. Evet, normal bir view ı tablo gibi SQL im diyen tüm db lerde sorgularsınız fakat dikkatinizi ;

Kod: Tümünü seç

hareket.islem_tarihi between =:gelen_tarih1 and gelen_tarih2 
bölümüne çekmek isterim. Gruplamaya esas teşkil eden bu kriterin view oluşturulduktan sonra gönderilmesi mümkün değildir. Şöyle yapabilirsiniz;

Kod: Tümünü seç

create view cari_liste
as
select cari_kod,cari_isim,hareket.borc_TL,hareket.alacak_TL,hareket.islem_tarihi from kart,hareket
where kart.cari_kod=hareket.cari_kod;
/

select cari_kod,cari_isim,sum(borc_TL) borcTL,sum(alacak_TL) alacakTL
from cari_liste
where 
islem_tarihi between = :gelen_tarih1 and gelen_tarih2
group by cari_kod,cari_isim
Bu durumda da view oluşturmanın bir mantığı kalmayacaktır. Sadece iki tabloyu join etmiş olmaktan başka. Performansı düşürmekten başkaca bir işe yaramayacak zira tek döngüde oluşturulabilecek plan, iki döngüde oluşacak ve performansı kötü yönde etkileyecektir.

Oracle ile ise başka bir topic de verdiğim örneğe bakarak bu normalde olası olmayan view tipini oluşturabilirsiniz. Senkronize session değişkenleri tutabilen diğer db lerde de aynı yöntem çalışır. Topiği hatırlayamıyorum ama dah 3-5 gün önce orada vermiştim örneği.
Doğan Zorlu, İzmir

------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Mesaj gönderen musti »

tsk ederim hocam .
Cevapla