Merhaba arkadaşlar.Programımda uygulama başlatıldığında yani from açıldığında "bugüne ait taksit tahsilatlarınız var,çek ödemeleriniz var, " şeklinde MSN deki gibi ileti penceresi çıkarmak istiyorum.Normalde bunu yapabiliyyorum ama form Showuna kodu yazdığımda tabii olarak table 'ı baştan sona taratarak arama yaptırıyorum.
Sorun şu : bu arama malesef 100 kayıtta bile bayağı bekletiyor.10.000 veya daha üstü kayıtta bunu en uygun oalarak nasıl yapabilirim.en hızlı bi şekilde.IBDataset ile bunu yapıyorum.acaba IBQuery mi kullanmalı ve döngüyü "While Not IBDataset.EOF do" ile yapıyorum.en hızlı bi şekilde table' ı baştan sona nasıl taratabiliirim ve bunu formun açılışında nasıl gösterebilirim.Bi fikir verebilir misiniz?
Yardımlarınız için şimdiden Teşekkürler.
Table da döngü
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Queryy kullanmanda fayda var, daha hızlı olur.
gibi query + tarih diye aratırsan oldukça detaylı bilgi bulursun.
Kolay gelsin...
Kod: Tümünü seç
select * from tablo where tarih='08/04/2005''
Kolay gelsin...
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned

Ez cüdâyîhâ şikâyet mîküned

Hdayının da dediği gibi sadece o günün tarihine uygun kayıtları aratarabilirsin.bunun içinde query kullanman daha hızlı ve sağlıklı olur.bende senin dediğini program açılırken bana haber vermesi için yapmıştım.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Table da döngü
Kod: Tümünü seç
CREATE PROCEDURE UYARI_VER
RETURNS (
KALAN_TUTAR FLOAT,
VADE_TARIHI DATE)
AS
begin
SELECT VADE_TARIHI,KALAN_TUTAR FROM TAKSIT_TAKIP
WHERE (VADE_TARIHI = :VADE_TARIHI) AND (KALAN_TUTAR = :KALAN_TUTAR)
INTO :VADE_TARIHI, :KALAN_TUTAR;
end
Kod: Tümünü seç
var
Kalan_tutar:Real;
Vade_tarihi:TDateTime;
begin
Kalan_tutar:=IBDataSet1KALAN_TUTAR.AsFloat;
Vade_tarihi:=IBDataSet1VADE_TARIHI.AsDateTime;
UYARI_VER_PROC.ParamByName('KALAN_TUTAR').AsFloat:=Kalan_tutar;
UYARI_VER_PROC.ParamByName('VADE_TARIHI').AsFloat:=Vade_tarihi;
If (Kalan_tutar>0) And (Vade_tarihi=Date) Then
Begin
Alarm.Execute;
UYARI_VER_PROC.ExecProc;
// Except
End;
Sanırım @mussimsek bahsetmişti, ib'nin sp'i ile sonuc dönmüyor, query kullanmak gerekiyor diye.
Bi araştır istersen.
Bir de sp sonuc döndürecekse suspend kullanman gerekiyor (firebird kullandığını tahmin ediyorum). For ile dönen her bir kayıt için çalıştırman gerekiyor. Örneği var aşağıda
viewtopic.php?t=7859
Kolay gelsin...
Bi araştır istersen.
Bir de sp sonuc döndürecekse suspend kullanman gerekiyor (firebird kullandığını tahmin ediyorum). For ile dönen her bir kayıt için çalıştırman gerekiyor. Örneği var aşağıda
viewtopic.php?t=7859
Kolay gelsin...
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned

Ez cüdâyîhâ şikâyet mîküned
