interbasede arama sorunu

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
guney
Üye
Mesajlar: 88
Kayıt: 19 Ağu 2003 03:04
Konum: İstanbul

interbasede arama sorunu

Mesaj gönderen guney »

interbase yeni başladım. forumda arattırdım ama benim sorunuma cözüm bulamadım. ( mazeretler ... )

İki sorunum var
1- önceden paradox kullanıyordum ve arama ekranımda aranacak alana göre indexli bir tablo ile
t_firmalar.FindNearest([edt_ara.text]) satırı ile işimi görüyordum.
yanı yazarken aram işlemini.
şimdi interbase geçtim ve buradakı findnearest komutunu kabul etmiyor. bir sürü arama ekranım var ve ben bunları pratik olarak düzeltmek istiyorum. interbase de bu işi nasıl yaparım?

2-ibdatabase her forma koymak zorundamıyım. böyle olunca her sefer database acıyor ve yavaşlamaya neden olur diye düşünüyorum. ?
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

1- arama için sql den yararlanabilirsin . Anahtar kelime Like

Kod: Tümünü seç

select * from tablo
where alan like xxx
gibi

2- bir database dosyası ( veri.gdb ) için sadece tek bir IbDatabase koyman yeterli . Ana bir Data Modülün olur ve bu IbDatabase ide oraya koyabilirsiniz .
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

locate kullanabilirsin;

örnek tabloda ADI üzerinde EDIT.TEXT deki bilgiyi aramak için,

tablo.locate('ADI',EDIT1.TEXT,[]);

[] arasına --> [lopartialkey] yazarsan en yakını şeklinde aramada yapabilirsin..
guney
Üye
Mesajlar: 88
Kayıt: 19 Ağu 2003 03:04
Konum: İstanbul

Mesaj gönderen guney »

benim yapmak istedği fieldname = ADI . formda bir tedit ve alttan query yada table ya bağlı grid var

recordlar :
ALİ
BANU
GÜNEY
GÜNAY
VELİ

burada tedit alanında G ye basınca hemen GÜNAY a gelisin sonra istediğim değeri yazdıkca gridde o kaydın üzerine gelsin. bunu paradoxta yapıyorum.ama ib te olmadı.

2.sorum için. ben programın hem ağ da kullanılması üzerine tasarım yapıyorum. ağ yolunun ve databasesin bir text ten alınıp ibdatabase aktarılmasını siteden okudum ve kullanıyorum. Ancak datamodul de from creat diye bişe olmadığı için ilk form creat olunca text ten yolu alayım.
yanı database yolunun ve adının değiştirilmesi olasılığını düşünerek yardımcı olabilirmisiniz?

saygılarımla
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

tamam yukardaki şekilde işini görebilirsin..


SORGUN
----------
SELECT ADI,SOYADI,.. , FROM TABLO ORDER BY ADI

DAHA SONRA

EDIT1.TEXT İN CHANGE OLAYINA
---------------------------------------
QUERY1.LOCATE('ADI',EDIT1.TEXT+'%',[lopartialkey]);

QUERY1. FieldByName('ADI'). AsString=edit1. Text then dbgrid1.SetFocus;


yaz
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

Kod: Tümünü seç

tamam yukardaki şekilde işini görebilirsin.. 


SORGUN 
---------- 
SELECT ADI,SOYADI,.. , FROM TABLO ORDER BY ADI 

DAHA SONRA 

EDIT1.TEXT İN CHANGE OLAYINA 
--------------------------------------- 
QUERY1.LOCATE('ADI',EDIT1.TEXT+'%',[lopartialkey]); 

IF (QUERY1. FieldByName('ADI'). AsString=edit1. Text)  then dbgrid1.SetFocus; 

guney
Üye
Mesajlar: 88
Kayıt: 19 Ağu 2003 03:04
Konum: İstanbul

Mesaj gönderen guney »

Allah Razı Olsun.

Saygılarımla
Cevapla