• Vaynet.net, Türkçe içerikli genel forum sitesi ve eğlenceli paylaşım sitesi olarak kullanıcılara keyifli ve etkileşim dolu bir forum deneyimi sunuyor. Forum sitemizde merak ettiğiniz sorulara cevap bulabilir ve bildiğiniz konularda da diğer forum üyelerimize yardımcı olabilirsiniz.

    Foruma katılmak için BURAYA TIKLAYIN

Firebird Over Kullanımı

Acoupotan

Forum Üyesi
Katılım
22 Eyl 2022
Mesajlar
166
Puanları
0
Konum
Egypt
Merhaba arkadaşlar.
Firebird Over komutu ile yeni tanıştım, biraz geçte olsa
smile.png

Güzel bir komutmuş. Cari hesapta, kasada ve bankada kullandığım satırdaki bakiye hesaplamasını OVER dan önce Firebird'de**prosedür yazarak yapıyordum, artık*'sum(TAHSILAT-TEDIYE) over (order by TARIH, SAAT, ISLEMKOD) as Bakiye' yetiyor.
Benim gibi gecikenlere örnek olması için Delphi kullanımını ve Firebird'de yaptığım prosedürü*paylaşıyorum
lightbulb.png


FIREBIRD'DE PROSEDÜR İLE BAKİYE HESAPLAMA

COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;

/* Stored procedures */

CREATE PROCEDURE "BAKIYE_HESAP_KASA_TARIH"
(
*"KASAKOD_IN" INTEGER
)
AS
BEGIN EXIT; END ^


ALTER PROCEDURE "BAKIYE_HESAP_KASA_TARIH"
(
*"KASAKOD_IN" INTEGER
)
AS
DECLARE VARIABLE TAHSILAT_IN DOUBLE PRECISION;
* * DECLARE VARIABLE TEDIYE_IN DOUBLE PRECISION;
* * DECLARE VARIABLE ISLEMKOD_IN INT;
* * DECLARE VARIABLE BAKIYE_IN DOUBLE PRECISION;
* * DECLARE VARIABLE CARIKOD_IN INT;
BEGIN
* * * FOR *SELECT TAHSILAT,TEDIYE,ISLEMKOD,CARIKOD
* * * * * *FROM KASAISLEM WHERE KASAKOD = :KASAKOD_IN AND SISTEM 2
* * * * * *ORDER BY TARIH , SAAT , ISLEMKOD
* * * * * *INTO :TAHSILAT_IN,:TEDIYE_IN,:ISLEMKOD_IN,:CARIKOD_IN
* * * DO
* * * BEGIN
* * * * * * IF (TAHSILAT_IN >0) THEN
* * * * * * * * * *BAKIYE_IN = BAKIYE_IN + TAHSILAT_IN;
* * * * * * IF (TEDIYE_IN >0) THEN
* * * * * * * * * *BAKIYE_IN = BAKIYE_IN - TEDIYE_IN;
* * * * * * IF (BAKIYE_IN < 0) THEN
* * * * * * * * * *UPDATE KASAISLEM SET BAKIYE = :BAKIYE_IN* -1,DURUM = -1 WHERE ISLEMKOD = :ISLEMKOD_IN;
* * * * * * ELSE IF (BAKIYE_IN = 0) THEN
* * * * * * * * *UPDATE KASAISLEM SET BAKIYE =0,DURUM = 0 WHERE ISLEMKOD = :ISLEMKOD_IN;
* * * * * * ELSE IF (BAKIYE_IN > 0) THEN
* * * * * * * * *UPDATE KASAISLEM SET BAKIYE = :BAKIYE_IN,DURUM = 1 WHERE ISLEMKOD = :ISLEMKOD_IN;
* * * END
* * * EXIT;
END
^

SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;

DELPHI'DE OVER KOMUTU İLE BAKİYE HESAPLAMA

procedure TFKasalar.TariheGoreSiralaClick(Sender: TObject);
var
*yer: TBookmark;
*i: integer;
begin
*yer := DMKasa.KasaHareketIBQ.GetBookmark;
*DMKasa.KasaHareketIBQ.DisableControls;

*DMKasa.KasaHareketIBQ.SQL.Text := 'select ';
*DMKasa.KasaHareketIBQ.SQL.Add ('ISLEMKOD, KASAKOD, TARIH,CARIKURU, ISLEMKURU, TEDIYE, TAHSILAT, D_TEDIYE,');
*DMKasa.KasaHareketIBQ.SQL.Add ('D_TAHSILAT,SAAT, KASAISLEMNO, ISLEMTUR, ACIKLAMA, BAKIYE,');
*DMKasa.KasaHareketIBQ.SQL.Add ('C_DURUM, MAKBUZNO ,C_CARIADI , C_GGMERKEZI, C_PERSONEL, C_KULLANICIADI,');
*DMKasa.KasaHareketIBQ.SQL.Add (' sum(TAHSILAT-TEDIYE) over (order by TARIH asc, SAAT ASC,ISLEMKOD asc) as Bakiye');
*DMKasa.KasaHareketIBQ.SQL.Add (' from KASAISLEM ');
*DMKasa.KasaHareketIBQ.SQL.Add('Where KASAKOD=:KASAKOD AND SISTEM2');
*DMKasa.KasaHareketIBQ.SQL.Add('Order by TARIH ASC,saat ASC, ISLEMKOD');

*DMKasa.KasaHareketIBQ.Open;
*DMKasa.KasaHareketIBQ.GotoBookmark(yer);
*DMKasa.KasaHareketIBQ.EnableControls;
end;


 

Genel Forum

Türkçe Forum Siteleri

İnternette bilgi paylaşımı ve tartışma ortamı arayanlar için forum siteleri uzun yıllardır popüler bir tercih olmuştur. Her yaştan ve ilgi alanından kullanıcıya hitap eden genel forum siteleri, teknoloji, oyun, kültür ve daha pek çok konuda geniş içerik sunmaktadır. Bu platformlar, katılımcıların hem öğrenme hem de eğlenceli vakit geçirme ihtiyaçlarını karşılamaktadır.

Genel Forum Sitesi

İnternette Türkçe forumlar üzerinden içerik paylaşmak, dil bariyerini ortadan kaldırarak yerel kültüre uygun bir deneyim sunar. Türkçe forum siteleri, kullanıcıların bilgiye kolayca ulaşabileceği, aynı zamanda sosyal ve eğlenceli paylaşımlar yapabileceği platformlar oluşturur. Türkiye'deki internet kullanıcıları için bu forumlar, ilgi çekici konularda derinlemesine sohbetler sunar.

Genel Forum Siteleri

Günlük hayatın stresinden uzaklaşmak isteyenler için eğlenceli forumlar, keyifli bir alternatif sunar. Farklı hobilere ve ilgi alanlarına yönelik içeriklerle dolu olan bu forum paylaşım siteleri, kullanıcılarına samimi bir ortamda vakit geçirme fırsatı sunarken, aynı zamanda yeni insanlarla tanışma imkanı da sağlar. Eğlenceli paylaşımlar ve interaktif etkinliklerle dolu olan bu platformlar, hem öğrenmeyi hem de keyifli vakit geçirmeyi bir arada sunar.

İnternette yeni bir topluluk arayan ya da bilgi alışverişi yapmak isteyenler için genel forum siteleri harika bir başlangıç noktasıdır. Geniş bir kullanıcı kitlesine hitap eden Türkçe forumlar, herkesin ilgisini çekecek konularla doludur. Siz de bu platformlara katılarak, kendi ilgi alanlarınıza uygun başlıklarda sohbetlere katılabilir ve katkıda bulunabilirsiniz. 

Not : Lütfen Çekim Paylaşım Forumları için sitemizi kullanmayın.

Benzer konular