Edit1'e kelime girdikçe sorgulama yapsın.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Ertuğrul2025
Üye
Mesajlar: 30
Kayıt: 08 Oca 2025 10:35

Edit1'e kelime girdikçe sorgulama yapsın.

Mesaj gönderen Ertuğrul2025 »

Hayırlı günler. Yaptığım uygulamada Edit1Change ile kayıtları görmek istiyorum.
Delphi XE7 kullanıyorum.

ADOQuery1 SQL ine

SELECT ID, A1, A2,
CONCAT (A1, A2) AS ARA
FROM KAYITLAR
ORDER BY ID DESC

yazarak formda kayıtlarımı görüntülüyorum. ancak "ARA" sütununun içerisinde içeren bir kelime aradığım zaman

ADOQuery1 .SQL.Clear;
ADOQuery1 .SQL.Add('Select * From KAYITLAR where ARA like ' +chr(39)+ Edit1.text +chr(39) );
ADOQuery1 .ExecSQL;
ADOQuery1 .Open;

Bu kod çalışmıyor. Bu konuda bana yardımcı olursanız memnun olurum.
ertank
Kıdemli Üye
Mesajlar: 1711
Kayıt: 12 Eyl 2015 12:45

Re: Edit1'e kelime girdikçe sorgulama yapsın.

Mesaj gönderen ertank »

Ertuğrul2025 yazdı: 30 Nis 2025 03:01 Hayırlı günler. Yaptığım uygulamada Edit1Change ile kayıtları görmek istiyorum.
Bunu yapmanızı önermem. O kadar yoğun veritabanı sorgusu yerine ara butonu gibi bir buton tıklama ile arama yapması daha sağlıklı olacaktır.

Hatanız SQL komutuna ADD() kullanarak ekleme yapmak. Ancak siz her defasında sıfırdan SQL sorgusu hazırlamanız gerekiyor.
Ayrıca LIKE SQL kulllanımında başlangıç ya da bitişi içeren araması yapması için % karakteri eklemelisiniz.
Son olarak ExecSQL komutu INSERT / UPDATE gibi geriye veri çevirmeyen sorgular için kullanılır.
Geriye veri çeviren sorgularda Open kullanmalısınız.

Aşağıdaki gibi kodunuzu değiştirdiğiniz zaman istediğiniz şekilde çalışması gerekir

Kod: Tümünü seç

ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'Select * From KAYITLAR where ARA like ' + QuotedStr('%' + Edit1.Text + '%');
ADOQuery1.Open;
Ertuğrul2025
Üye
Mesajlar: 30
Kayıt: 08 Oca 2025 10:35

Re: Edit1'e kelime girdikçe sorgulama yapsın.

Mesaj gönderen Ertuğrul2025 »

ertank yazdı: 30 Nis 2025 06:13
Ertuğrul2025 yazdı: 30 Nis 2025 03:01 Hayırlı günler. Yaptığım uygulamada Edit1Change ile kayıtları görmek istiyorum.
Bunu yapmanızı önermem. O kadar yoğun veritabanı sorgusu yerine ara butonu gibi bir buton tıklama ile arama yapması daha sağlıklı olacaktır.

Hatanız SQL komutuna ADD() kullanarak ekleme yapmak. Ancak siz her defasında sıfırdan SQL sorgusu hazırlamanız gerekiyor.
Ayrıca LIKE SQL kulllanımında başlangıç ya da bitişi içeren araması yapması için % karakteri eklemelisiniz.
Son olarak ExecSQL komutu INSERT / UPDATE gibi geriye veri çevirmeyen sorgular için kullanılır.
Geriye veri çeviren sorgularda Open kullanmalısınız.

Aşağıdaki gibi kodunuzu değiştirdiğiniz zaman istediğiniz şekilde çalışması gerekir

Kod: Tümünü seç

ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'Select * From KAYITLAR where ARA like ' + QuotedStr('%' + Edit1.Text + '%');
ADOQuery1.Open;
Allah razı olsun hocam.
Cevapla