Bir view sorusu

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
hbulus
Üye
Mesajlar: 163
Kayıt: 14 Tem 2003 11:30
İletişim:

Bir view sorusu

Mesaj gönderen hbulus »

S.a.
Bir tabloda grup_kodu ve altgrup_kodu adında iki alanım var.
  • grup_kodu altgrup_kodu
    ------------- -------------
    -- 1 ------------ a
    -- 1 ------------ b
    -- 1 ------------ c
    -- 2 ------------ d
    -- 2 ------------ e
    -- 3 ------------ f
şöyle bir view'e ihtiyacım var; altgrup_kodu verilince bunun grup_koduna bağlı olan tüm altgrup_kodu liste olarak dönecek,
yani altgrup_kodu=b denildiğinde bunun grup_kodu olan '1' e bağlı olan a, b, c olarak sonuç dönecek.
Erbab-ı kemâli çekemez nakıs olan, rencide olur Dide-i Huffaş ziyadan....
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Bir view sorusu

Mesaj gönderen sabanakman »

Viewlerde parametre pek olmaz ama direkt sorguyla veya stored procedure ile kod yazabilirsiniz.

Kod: Tümünü seç

select * from tabloadi where grup_kodu in (select distinct grup_kodu from tabloadi where altgrup_kodu='b')
Bir Tablo tipi fonksiyon da yazılabilir.

Kod: Tümünü seç

CREATE FUNCTION dbo.AnaKodlar(@Parameter varchar(10))
RETURNS TABLE
AS
RETURN
(
  select * from tabloadi where grup_kodu in (select distinct grup_kodu from tabloadi where altgrup_kodu= = @Parameter
)
gibi bir fonksiyonu

Kod: Tümünü seç

select * from dbo.AnaKodlar('b')
şeklinde kullanabilirsiniz.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
hbulus
Üye
Mesajlar: 163
Kayıt: 14 Tem 2003 11:30
İletişim:

Re: Bir view sorusu

Mesaj gönderen hbulus »

Hocam bilgi için teşekkürler.
Verdiğiniz fonksiyonu tanımladım ve view'de

Kod: Tümünü seç

select * from dbo.AnaKodlar('b')
şeklinde oluşturdum, oluyor, ama ('b') parametresini ben kod bölümünde vermem gerekiyor. Halbuki bu şekilde sadece view'deki sonucu alabiliyorum. Parametreyi delphi kısmında girilecek şekilde bir yapı nasıl olabilir?
Erbab-ı kemâli çekemez nakıs olan, rencide olur Dide-i Huffaş ziyadan....
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Bir view sorusu

Mesaj gönderen sabanakman »

Delphiden sorgu yazılacak o kadar.

Kod: Tümünü seç

S:='b';
ADOQuery1.SQL.Text:='select * from dbo.AnaKodlar('+QuotedStr(S)+')';
ADOQuery1.Open;
veya parametre ile kullanım ise

Kod: Tümünü seç

ADOQuery1.SQL.Text:='select * from dbo.AnaKodlar(:AltKodu)';
ADOQuery1.Params[0].Value:'b';
ADOQuery1.Open;
İnternet üzerinde bir çok sorgu örneği bulabilirsiniz.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla