Birden cok sonuc donmesi...

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
i_zec
Üye
Mesajlar: 119
Kayıt: 01 Tem 2005 03:07

Birden cok sonuc donmesi...

Mesaj gönderen i_zec »

merhaba.Yapılan sorgu sonucu birden cok cevap donuyor .bunlara ait olan bilgileri Stored Procedure ile goruntuleyebilrmıyız.?Yanı bir yol ızlemem gerekıyor .?
İyi çalışmalar...
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Sorunuzu biraz daha açıklayıcı ve örnekleyerek anlatırsanız yardımcı olabiliriz.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Soru anlaşılır ve de açık değil.....

Bu hali ile işinize yarayacak cevap alma şansınız pek yok...
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

Anladığım kadarı ile :)
Bir Stored Procedure ile birden çok alanı select deyimi ile çakiyorsun.Ör:

Kod: Tümünü seç

"Select * from personel"
eğer sql server ve ado kullanıyorsan stored procedure a bu sql i yazdıktan sonra derlemen ve adoquery'e:

Kod: Tümünü seç

execute Ornekprocedure
yazman yeterli olacaktır.Bu query sanki içerisine "Select * from personel" yazmışsın gibi davranacaktır.

_______________________________________________

Eğer fb/interbase kullanıyorsan * şeklinde bir kullanıma büyük ihtimalle izin vermeyecektir.Daha doğrusu * deyimini güvensiz bulacaktır.Burada into deyimini kullanarak oluşturduğunuz output parametrelere select içerisinden seçtiğiniz alanları atayabilirsiniz.Sonra da bir queryden

Kod: Tümünü seç

"Select * from OrnekFbProc(param1,param2)"
şeklinde çağırabilirisiniz.
i_zec
Üye
Mesajlar: 119
Kayıt: 01 Tem 2005 03:07

Mesaj gönderen i_zec »

hesapları referans eden kodlar var

320 hesabını 100 referans ediyo.320-001 ise 101 referans ediyo vs. Kullanıcı sorgulayacağı hesabın numrasını tam girmeyeblir.yanı 320-001-00001 yazmayabilir.Eğer boyle yazarsa tek bir referans numrası donecektır.Ancak tutarda sadece 320 yazarsa 320 nın altında bulunan butun referans kodları almak ve bilgilerini lıstelemek istıyrum.Sorunum bu ....
Umarım anlamışsınızdır...... :cry:
İyi çalışmalar.....
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

i_zec yazdı:hesapları referans eden kodlar var

320 hesabını 100 referans ediyo.320-001 ise 101 referans ediyo vs. Kullanıcı sorgulayacağı hesabın numrasını tam girmeyeblir.yanı 320-001-00001 yazmayabilir.Eğer boyle yazarsa tek bir referans numrası donecektır.Ancak tutarda sadece 320 yazarsa 320 nın altında bulunan butun referans kodları almak ve bilgilerini lıstelemek istıyrum.Sorunum bu ....
Umarım anlamışsınızdır...... :cry:
İyi çalışmalar.....
Gerçekten anlaşılması güç bir numaralandırma sistemi.Tabloların yapısını gösterirsen belki yardımcı olunabilir. :idea:
onaydin

Mesaj gönderen onaydin »

eski usul kategorize etme sistemlerine benziyor.
where kısmında like kullanırsanız olabilir

Kod: Tümünü seç

where alan like '320%' 
Burda yazılanların
Yapılan sorgu sonucu birden cok cevap donuyor
ile ilişkisi nedir onu çözemedim.

Soru sorarken basit ve sade mümkünse örnek datayla soru sorarsanız daha kolay olur. Data bu almak istedigim sonuç şu diye.
i_zec
Üye
Mesajlar: 119
Kayıt: 01 Tem 2005 03:07

Mesaj gönderen i_zec »

benim demek istedğim şu,tekrar açılıyorum
tablo 1

REFNO | CODE | ACCNAME |
----------------------------------------
100 | 320 | abc
101 |320-001 | abcd
102 |320-002 | abcf
103 |320-002-0001|cbdgbc

tablo 2 ise şöyle

REFNO | TOTAL
-------------------------
102 | 268 YTL
103 | 100 YTL

burada sadece anahtar ve getirilmesini istediğim alanları yazdım.Veriler tutarsız olabilir.Ona dikkat etmeyin.SAdece yapıyı anlatmak istedim.

Şimdi burada kullanıcı direk 320-002-0001 girerse buna denk gelen bir tane REFNO olduğundan Tablo 2 den 103 REFNO lu harcamayı çekebiliriz.Ancak sorguda " like 320% dersek 320 ile başlayan butun referans nolarını dondurecektır.İşte Sorum Bu.Donen Bırçok kayıtı nasıl alacaz ve ona karşılık gelen harcamaları lısteleyecez.Umarım anlaşılmıştır.


Herkese İyi Çalışmalar.
i_zec
Üye
Mesajlar: 119
Kayıt: 01 Tem 2005 03:07

Mesaj gönderen i_zec »

hala mı karışık gelıyor beyler... :(
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selam,

Kod: Tümünü seç

SELECT T1.REFNO, T1.CODE, T1.ACCNAME, T2.TOTAL
FROM TABLO1 T1
  JOIN TABLO2 T2 ON T1.REFNO = T2.REFNO
WHERE T1.CODE LIKE :MY_PARAM
Bu Query ile MY_PARAM'a set edeceğiniz '320%' ler sayesinde, size JOINED bir RESULT SET dönecek. Siz bunları eğer kağıda dökmek istiyorsanız, (ki dönen Result Set bir TQuery nesnesi olabilir.) Quick Report, Report Builder, Fast Report gibi araçlar kullanıp raporunuzu, normal rapormuş gibi hazırlayailirsiniz. Eğer siz bu sonuçları bir GRID'e almak istiyorsanız, o zaman da Result Set'inizi taşıyan TQuery nesnesini bir DBGrid'e bağlamanız yeterli olacaktır.

Bu sizin için yeterli olur mu?

Not : Tablo2'nin Toplam değerler içerdiğini varsayarak bu şekilde yazdım, eğer Tablo2'de her Hesap birden fazla kayıt içerecek olursa, o zaman bu Query'i Aggragated Query'e dönüştürmek gerekir. SUM kullanarak.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
i_zec
Üye
Mesajlar: 119
Kayıt: 01 Tem 2005 03:07

Mesaj gönderen i_zec »

çok saol problemım haloldu.Teşekkurler.
İyi çalışmalar....
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Sayin i_zec
oncelikle probleminizin hallolmasına sevindim..... :)
i_zec yazdı: Umarım anlamışsınızdır......
i_zec yazdı:hala mı karışık gelıyor beyler...
Fakat sozlerinizden bir yanlıs anlama sezdigim icin bir saptama yapmak istiyorum... Cozumun gecikmesindeki sebep bizlerin problemi anlayamaması degil sizin detaylı anlatmıyor olmanız idi.... ;)

Takdir ederseiniz ki kimse sizin projenizi biliyor veya aklınızda ngecenleri okuyor degil... :)

Kolay gelsin.....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Re: Birden cok sonuc donmesi...

Mesaj gönderen Ali Erdoğan »

i_zec yazdı:merhaba.Yapılan sorgu sonucu birden cok cevap donuyor .bunlara ait olan bilgileri Stored Procedure ile goruntuleyebilrmıyız.?Yanı bir yol ızlemem gerekıyor .?
İyi çalışmalar...
Kardeş gerçekten sen derdini sql e de böyle döküyorsan sonuç alamaman normal. :wink: .Nereden ne istediğini iyice tanımlaman lazım.Bak boşuna yarım saat sp parçaladık :) .
Cevapla