IBQuery de sorguladıktan sonra aktif kayda geri dönmek

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
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

IBQuery de sorguladıktan sonra aktif kayda geri dönmek

Mesaj gönderen Uğur1982 »

Merhaba arkadaşlar;

Olayım şu : Diyelim Carikart diye bir table var.IBQuery1 Carikart table'ina ('select * from carikart') olarak bağlı.ben aynı şekilde IBQuery1 ile diyelim

Kod: Tümünü seç

With IBQuery1 do
   begin
      close;   
      SQL.Clear;
      SQL.Add('select * from carikart where kod='''+Edit1.Text+''' ');
      open;
   end;
olarak bi SQL sorgusu kullandım.direk o kaydı buldu ama ben bu kaydı bulduktan sonra diyelim 1.000.000 kayıt var bulduğum kodda 500.000
idi IBQuery1 .Next dedikten sonra 500.001' ci kaydın gelmesini isitiyorum.
malum IBQuery'de sorgularken sorgu şartlarına göre süzüyor.IBQuery1.Locate olayıyla aktif kayda geliniyor ama 1.000.000 kayıtta belleği bitiriyor....

Şimdiden yardım eden herkese teşekkürler..... :wink:
veritabanı : firebird
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

hocam ileri-Geri mantığını terketmen en güzeli. Kimse programda rastgele bundan sonraki kayıt nedir diye hareket etmez. Bana Ali'nin cari kartını getir, 15 numaralı faturayı getir gibi kayıtlara ulaşır. Buna uygun bir arama yöntemi kullanman iyi olur.

Kolay gelsin.
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

hocam benim burda yapmak istediğim asıl şey SQL sorgusunda bulduğumuz kaydı aktif hale getirmek yani veritabanında istediğim kayıta konumlanmak...biraz garip oldu kusura bakmayın........
habim
Üye
Mesajlar: 13
Kayıt: 29 Şub 2004 02:15
Konum: Şanlıurfa
İletişim:

Mesaj gönderen habim »

delphi tarafinda "locate" ile yapabilirsiniz. sql ile nasil yapilacagini cok arastirdim ama bulamadim.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

SQL sorgusu ile aradıgın kayıtın id sini (yani anahtar alan degerini) bulup
locate ile (yada for dongusu ile tarayarak, locate in koduna bakarsanız goreceksiniz :) ) buna konumlanabilirsin
ÜŞ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 »

eğer 1.000.000 kayıt üzerinde işlem yapıcaksan locate tede 1-2 dakika beklersin. IBX sin locate i while not EOF diye çalışıyor, yani ilk kayıttan son kayıda kadar tek tek arıyor. ben 15.000 kayıtta müşteriye rezil oldum. sırf bu yüzden IBX i bırakmayı düşünüyorum. Alternatif olarakta IBO yada FIBPlus. ben şimdilik FIBPlus ı deniyorum, ver tercihim ondan yana olucak gibi. Hemen söyliyeyim bunlar bedava değil 300-400$ kadar bir para verdikten sonra source kodlarıyla size hediye ediyolar :P

bence sen şöyle yap, Kullanıcı cari kartı seçtiğinde ekranda full liste gelsin, forma edit insert delete gibi buttonlar koy edit denildiğinde ekrana ikinci bir form aç ve editleri bu formda yaptır. Arama için extra birşeyler yapmana gerek kalmaz

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 !!!
Cevapla