sa.
arkadaşlar örneğin firebird ile şöyle bir procedure var .
CREATE PROCEDURE PDENEME_A (
PALAN VARCHAR (1024))
RETURNS (
KODU VARCHAR (15),
HESAP_TURU VARCHAR (30),
CARI_ISMI VARCHAR (50),
REFERANSI VARCHAR (25),
VADESI TIMESTAMP,
TUTAR_TL DOUBLE PRECISION)
AS
begin
FOR
EXECUTE STATEMENT ALAN
into :CARI_ISMI,REFERANSI,HESAP_TURU, VADESI ,TUTAR_TL ,KODU
do
suspend;
end
ve ibquery1 ile 'SELECT * FROM PDENEME_A ('SELECT KODU,HESPA_TURU,CARI_ISMI,REFERANSI,VADESI,TUTAR_TL FROM VERILER WHERE KODU='001' ') gibi bir sorgu yaptığımızı varsayalım.
Tıpkı bir tablo gibi. Problem yok.
Peki bu dönen sonuçları ; örnek olarak 'SELECT SUM(TUTAR_TL) FROM PDENEME_A WHERE CARI_ISIM=:CARI_ISMI') gibi tekrar başka bir sorguyla master detail sorgu yapılabilir mi. Bu kodu örnek için verdim.
kısaca bir procedure den dönen sonuçları tekrar bir sorguya daha tabi tutabilirmiyim.
herkese teşekkürler.......
Firebird stored procedure ile master detail sorgu olur mu
tabi... EXECUTE STATEMENT ALAN ile değişik SQL leri text olarak gönderilebilir.
sorumu şöyle açıklayayım. yukardaki procedureyi şöyle çağıralım..
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Text:=( 'SELECT CARI_ISMI,REFERANSI,HESAP_TURU, VADESI ,TUTAR_TL TUTAR_TL ,KODU FROM PDENEME_A'
+' ('SELECT KODU,HESAP_TURU,CARI_ISMI,REFERANSI,VADESI,TUTAR_TL FROM VERILER WHERE KODU='001' ')'
+' WHERE REFERANSI='Ankara' ORDER BY HESAP_TURU ');
IBQuery1.Open;
(tırnaklar yanlışlıklarını gözardı edin örnek için verdim....)
bu sorgu, procedure sayesinde koşullara uygun verileri getirdi diyelim.
ben procedureyi bu haliyle dururken ,ikinci bir sorguyuda şöyle yapmak istiyorum
IBQuery2.DataSource:=IBQuery1Datasource; yani IBQuery2, IBQuery1 e bağlı olsun.
IBQuery2.Close;
IBQuery2.SQL.Clear;
IBQuery2.SQL.Text:=( 'SELECT CARI_ISMI, sum(TUTAR_TL) as TUTAR_TL FROM PDENEME_A'
+' WHERE CARI_ISMI=:CARI_ISMI {bu cari_ismi IBQuery1 deki cari_ismi ne bağlı}
+' GROUP BY CARI_ISMI ');
IBQuery2.Open;
bu kod çalışmaz. ama mantık olarak sunmak istedim.
yani precedure den dönen sonucu başka bir IBQueryX ile master detail sorguya daha tabi tutmak istiyorum.
procedureyi aynen bir tablo gibi sorgulamak istiyorum. nasıl ki bir tabloya farkıl birden fazla IBQueryX lerle, farklı sorgular uygulanıyorsa....
sorumu şöyle açıklayayım. yukardaki procedureyi şöyle çağıralım..
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Text:=( 'SELECT CARI_ISMI,REFERANSI,HESAP_TURU, VADESI ,TUTAR_TL TUTAR_TL ,KODU FROM PDENEME_A'
+' ('SELECT KODU,HESAP_TURU,CARI_ISMI,REFERANSI,VADESI,TUTAR_TL FROM VERILER WHERE KODU='001' ')'
+' WHERE REFERANSI='Ankara' ORDER BY HESAP_TURU ');
IBQuery1.Open;
(tırnaklar yanlışlıklarını gözardı edin örnek için verdim....)
bu sorgu, procedure sayesinde koşullara uygun verileri getirdi diyelim.
ben procedureyi bu haliyle dururken ,ikinci bir sorguyuda şöyle yapmak istiyorum
IBQuery2.DataSource:=IBQuery1Datasource; yani IBQuery2, IBQuery1 e bağlı olsun.
IBQuery2.Close;
IBQuery2.SQL.Clear;
IBQuery2.SQL.Text:=( 'SELECT CARI_ISMI, sum(TUTAR_TL) as TUTAR_TL FROM PDENEME_A'
+' WHERE CARI_ISMI=:CARI_ISMI {bu cari_ismi IBQuery1 deki cari_ismi ne bağlı}
+' GROUP BY CARI_ISMI ');
IBQuery2.Open;
bu kod çalışmaz. ama mantık olarak sunmak istedim.
yani precedure den dönen sonucu başka bir IBQueryX ile master detail sorguya daha tabi tutmak istiyorum.
procedureyi aynen bir tablo gibi sorgulamak istiyorum. nasıl ki bir tabloya farkıl birden fazla IBQueryX lerle, farklı sorgular uygulanıyorsa....
Tam sorununuzu anlamadım ama eğer anladığım ise şu örnek işinize yarayabilir:
File ---> New ---> Other menüsüne girin.
Business ---> Database Form Wisard'ı seçin.
Create a master/detail form ve
Create a form using TQuery objects'i seçerek adım adım örnek bir master/detail form hazırlarsanız oradan hareketle TIBQuery ile benzer master/detail yapıda form veya datamodule hazırlayabilirsiniz.
Burada önemli olan detail TQuery'de Datasource'un aldığı değer.
İyi çalışmalar.
File ---> New ---> Other menüsüne girin.
Business ---> Database Form Wisard'ı seçin.
Create a master/detail form ve
Create a form using TQuery objects'i seçerek adım adım örnek bir master/detail form hazırlarsanız oradan hareketle TIBQuery ile benzer master/detail yapıda form veya datamodule hazırlayabilirsiniz.
Burada önemli olan detail TQuery'de Datasource'un aldığı değer.
İyi çalışmalar.