ibquery sonuçlarım table daki gibi degişebilirmi....?

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Kullanıcı avatarı
ömer faruk
Üye
Mesajlar: 97
Kayıt: 29 Eki 2003 09:34
Konum: Bursa
İletişim:

ibquery sonuçlarım table daki gibi degişebilirmi....?

Mesaj gönderen ömer faruk »

datamodule1.fatura_toplam.Close;
datamodule1.fatura_toplam.SQL.Clear;
datamodule1.fatura_toplam.SQL.Add('SELECT CARI.CARI_KOD,FATURA.CARI_KOD,FATURA.FATURA_NO,FATURAA.FATURA_NO,Sum(FATURAA.MIKTAR),Sum(FATURAA.FIYAT) FROM CARI,FATURA,FATURAA');
datamodule1.fatura_toplam.SQL.Add('WHERE CARI.CARI_KOD=FATURA.CARI_KOD AND FATURA.FATURA_NO=FATURAA.FATURA_NO GROUP BY CARI.CARI_KOD,FATURA.CARI_KOD,FATURA.FATURA_NO,FATURAA.FATURA_NO');
datamodule1.fatura_toplam.Open;
edit1.text:=datamodule1.fatura_toplam.Fields[0].AsString;

yukarıdaki toplamdan fiyat ve miktar alanlarının toplamlarını alıyorum ama dbgirid te başka carilere tıkladıgım zaman ilk gösterdigi sonuç çıkıyor hiç bir deişme olmuyor şu query leri tablelar gibi yapabilirmiyiz bilmem anlatabildinmi yani dbgrid te başka alanlara da tıklasak bizim query sonucu o alandaki fiyat ve miktarı toplasın...... umarım anlatabilmişimdir...Şimdiden teşekkür ederim....
Hakimiyet ALLAH' ındır...
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

Where de carinoyu parametre olarak gec
dbgride baglanan datasource un onDataChange gibi bir olayı vardı
burada parametreyi guncelle ve Query ni kapat ac
kayıtlar arası dolasırken yavaslama olabilir
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
ömer faruk
Üye
Mesajlar: 97
Kayıt: 29 Eki 2003 09:34
Konum: Bursa
İletişim:

Mesaj gönderen ömer faruk »

S.A
üstad ilgilendiğin için teşekkürler....
Söylediğinizi yaptım ama olmadı sql parametresi istedigim sonuçları veriyor ama bunu ilk çalıştırmada veriyor sonra birtürlü değişen duruma göre yeniden hesaplatma yapamıyorum nerede yanlış yapoyorum acaba neyse çok teşekkürler....
Hakimiyet ALLAH' ındır...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

ilgisi var mı denemedim ama IBQuery açtığınız zaman tablodan tüm kayıtları çekmez. Belli bir kısmını çeker. Belki bu yüzden olabilir. FetchAll özelliğini True yapıp bir dene.

Kolay gelsin.
Kullanıcı avatarı
ömer faruk
Üye
Mesajlar: 97
Kayıt: 29 Eki 2003 09:34
Konum: Bursa
İletişim:

Mesaj gönderen ömer faruk »

Mustafa abi fetchall dediğiniz özellik nerdeki :oops: bulamadım
Hakimiyet ALLAH' ındır...
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

query yi kapatıp actıgın haldemi kayıtlar degismiyor?
eger parametre degisiyorsa o parametreye gore acınca query istedigin kayıtları getirmesi gerek
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

özellik değilmiş, Query'i açtıktan sonra

IBQuery1.FetchAll;

yazman lazım.

Kolay gelsin.
Kullanıcı avatarı
ömer faruk
Üye
Mesajlar: 97
Kayıt: 29 Eki 2003 09:34
Konum: Bursa
İletişim:

Mesaj gönderen ömer faruk »

S.A
Teşekkürler ilgilendiğiniz için....
Açıkça ne ve nasıl yaptıgımı anlatayım
4 tane table ım var
cari_table, fatura_table, faturaa_table, fatura_toplam (ibquery bu)

yapmak istedigim aynı carideki faturalar içindeki faturanın kalemleri ürün bir ürün 2 bunları faturaa_table da tutuyom en azından oyle yapmaya çalıyom ve faturanın üzerindeki urunlerın toplam miktarı ve toplam tutarını toplatıyorum fatura_toplam da tabi fatura_table gezdigim zaman oanki faturanın üzerindeki ürünlerin maliyeti ve miktarını toplamasını istiyorum yukarıdaki sql komutları ile bir sql el yorumlayıcısında istedigim sonucu alıyorum ama delphiye uyarladıgım zaman yalnızca bir kere calışıyor oda ilk kaydın fatura degerlerini veriyor..umarım açıklayıcı olmuştur....kısaca mantık cari ile ilişkili fatura ve faturanın içindeki ifatura değerlerini sorgulatım dbgrid te gezsemde digercarilerin faturalarında otomatik işlem yapması neyse şimdiden çok teşekkürler....
Hakimiyet ALLAH' ındır...
Kullanıcı avatarı
ömer faruk
Üye
Mesajlar: 97
Kayıt: 29 Eki 2003 09:34
Konum: Bursa
İletişim:

Mesaj gönderen ömer faruk »

Mustada Abi bu arada dediğin fetchall komutu bir işe yaramadı
teşekkürler sağolasın.
Hakimiyet ALLAH' ındır...
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

interbase kullandıgına gore fatura no alıp icindeki kalemleri (faturaa tablosundan) toplayarak toplamı donduren bir storedproc yazsan
istedigin sql icinden parametresini (fatura no sunu ) vererek cagırabilirsin
bir cariye iliskin faturaları master-detail yaptıgını dusunelim
(ibdataset ile bu yapıyı kurmak cok kolay)
detail deki fatura sql i icinde bu toplamı yapacak sp yi cagıracaksın
bilmem anlatabildim mi
sp hakkında sitedeki makalelerin hepsini oku ve uygulamasını yap
kolay gelsin
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
ömer faruk
Üye
Mesajlar: 97
Kayıt: 29 Eki 2003 09:34
Konum: Bursa
İletişim:

Mesaj gönderen ömer faruk »

Üsdat hemen dedigini yaptım forum daki SP lerin okudum (gerçekten bilinmesi gereken olaylar trigger ve stored proclar) çoğunu anladım ama tecrube yok tabi sql komutlarını sp de bir kullanım şekli varmı yoksa olduğu gibi koysak olurmu...
Hakimiyet ALLAH' ındır...
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

ornek bi sp gondereyim sana ama
o makaledekiler acıklamalı gayet anlasılır idi
kullanılan dilin kendine has ufak tefek kuralları var

Kod: Tümünü seç

SET TERM ^^ ;
CREATE PROCEDURE P_EVRKAPAT (
  EVR_NO Integer)
 returns (
  BIT_ZAMAN Time)
AS
DECLARE VARIABLE TOP_TAR_MIK INTEGER;
DECLARE VARIABLE TOP_TAR_ADD INTEGER;
BEGIN
   /*EN SON ACIK EVRAK NO PARAMETRE OLARAK ALINIR. */
/*   SELECT MAX(EVR_NO) FROM EVRAK WHERE  EVR_ACIK=1 INTO :EVR_NO;*/

   /*TARTIM TABLOSUN DAN BU EVRAK NOYA İLİSKİN TARTIMLARIN TOPLAMINI BUL */
   SELECT SUM(TAR_MIK),COUNT(TAR_NO) FROM TARTIM
     WHERE EVR_NO=:EVR_NO INTO :TOP_TAR_MIK,:TOP_TAR_ADD;
   IF (TOP_TAR_MIK IS NULL) THEN
     TOP_TAR_MIK=0;
   /*TOPLAM DEGERLER İLE BİRLİKTE EVRAK BİTİS ZAMANI DA EKLENEREK */
   /*EVRAK KAPATILIR */
   BIT_ZAMAN=CURRENT_TIME;
   UPDATE EVRAK SET
       TOP_TAR_MIK=:TOP_TAR_MIK,
       TOP_TAR_ADD=:TOP_TAR_ADD,
       EVR_ACIK=0,
       EVR_BIT_ZAMAN=CURRENT_TIME
     WHERE EVR_NO = :EVR_NO;
END
^^
SET TERM ; ^^
degisken tanımlayıp buna atama yapabilirsin
mesela sumfatura diye bir cıkıs parametren olsun
giris parametren de faturanodeg olsun
soyle birsey yapman gerekiyor yaklasık olarak

select sum(fiyat*adet) from faturaa where faturano=faturanodeg into sumfatura;
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Tablolar arasında master detail bağ kurduysan, mesala ben yaptığımı anlatayım kısaca. 3 tablom var cari, fatura ve fatura detay. cari ID fatura ve detaydada var. Fatura ve detay querylerini yazıyorum cari ID ye göre grupluyorum, daha sonrada grid e cari bilgilerini bağlıyorum, Fatura ve detaylarıda (tabi bu tablolar her cari için tek kayıt yani toplam döndürüyor) lookup ile bağlıyorum, grid içinde her carini karşısında toplamları görebilirsin.
Bir baş ka yöntem ise cari nin PRKey sine bağlı bir dbedit ve bunun on change inde tetiklemesi gereken queryleri düzenlemek
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
ömer faruk
Üye
Mesajlar: 97
Kayıt: 29 Eki 2003 09:34
Konum: Bursa
İletişim:

Mesaj gönderen ömer faruk »

Çok sağolun arkadaşlar...
Hakimiyet ALLAH' ındır...
Kullanıcı avatarı
ömer faruk
Üye
Mesajlar: 97
Kayıt: 29 Eki 2003 09:34
Konum: Bursa
İletişim:

Mesaj gönderen ömer faruk »

S.A
Arkadaşlar Allah C.C izni ile başardım hemde stored procedur ile Rabbime şükürler olsun....
herkeze çok teşekkürler......
Hakimiyet ALLAH' ındır...
Cevapla