Bu şekilde arama yaptırıyorum dbgrid içerisinde..Yalnız sorun şuki diyelimki konyadan iki tane var ara butonu tıkladığımda ikincisine ya da varsa üçünsüne gitmiyor hep birinciyi gösteriyor ikinci veya üçüncüyü nasıl geçecek arama butonuna tekrar tıkladığımda...
- Bu tip bir aramaya ihtiyacım olduğunda şu metodu uyguluyorum.
- Bir tane kukla Sorgu ile aranacak kelimeyi içeren kayıtları filtreliyorum.
- Sonra bu kukla sorgu'da ilk kayda ait kayıtID'sini ekrandaki veritabanı sorgusundan locate ettiriyorum.
- Kullanıcı bir sonraki aramaya geçmek isterse, kukla sorguda next deyip yeni kayıtID'sini alıp yine aynı işlemi, ekrandaki veritabanından bu yeni ID'yi locate ettiriyorum. Böylece hızla işlemler yürümüş, çözüm üretmiş oluyorum.
arkadaşlar locate functionuna parametre olarak sql sorgusundan elde ettiğiniz bir değeri atarsanız sonuç daha etkili olacaktır.
s1.sql.add(' select sno, adi from sehir where adi like :param1+'%'');
s1.prepare;
s1.parambyName('param1').AsString:=edit1.text;
s1.open;
adotable1.Locate('Şehir',s1.fieldbyName('sira').AsInteger,[]);