Interbase de kayıt arama ile ilgili bir soru

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
monet
Üye
Mesajlar: 68
Kayıt: 26 Şub 2004 02:12
Konum: İstanbul

Interbase de kayıt arama ile ilgili bir soru

Mesaj gönderen monet »

IBTable1.Locate('BARCODE',FKOD,[LoCaseInsensitive]);

Barcode alanı = '002-002-03-00032'
FKOD Alanı = '002'

Dosyadan 002 ile başlayan ile kayda konumlanacağını ümit ettim ama false geriye dönüyo. Key in ilk 2-3 karakterine göre arama nasıl yapabilirim.
MT
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

like% ile yapabilirsin ama eğer çok fazla kayıt varsa ağır çalışır, onun yerine barkod alanına göre sıralattır, ve "002"+#1#1.... gibi kod yazıp locate le konumlandır, aradığını bulmak iinde ilk kayıttan sonra bir döngü içinde kayıtları alabilirsin. Tabi bu kullandığın yapıyla doğru orantılı işine yaramayabilir. mesela index olmazsa bu sistem çalışmaz IB/FB de de index li alanın size yanılmıyorsam 80 yada 88 karakter olabiliyor, buda demekki 128 karakterli bir barkodda dağılır demek

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 !!!
bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 10:32
Konum: istanbul

Re: Interbase de kayıt arama ile ilgili bir soru

Mesaj gönderen bgoktas »

monet yazdı:IBTable1.Locate('BARCODE',FKOD,[LoCaseInsensitive]);
yerine

IBTable1.Locate('BARCODE',FKOD,[lopartialkey]);

yazarsan olur, alternatif olarak queryde kullanabilirsin.
Cevapla