Biraz Acemi ce Ama-Filtreleme İle İlgili

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
hgencer
Üye
Mesajlar: 4
Kayıt: 30 May 2005 12:59
Konum: Denizli
İletişim:

Biraz Acemi ce Ama-Filtreleme İle İlgili

Mesaj gönderen hgencer »

Merhaba arkadaşlar. bu donem aldığımız delphi dersi sayesinde delphiye ilgi duymaya başladım. kurcalarken baya bi şeyler buldum. ama takıldığım ve merak ettiğim bir nokta var. çoğu uygulamada kullanılan filtreleme işlemi nasıl yapılır arkadaşlar?
Mesela bir edit e her girişte dbgrid de ona gore sonuç çıkarmak gibi.
Bana soyle geliyor. select * from musteri where ad like 'edit1.text%'
sql bilgime gore sorgu bu ama. bu sorguyu nereye yazmalıyım? ve ne zaman çalıştırmalıyım(edit1 in onkeypreess olayında olsa olur mu?)?

Yardımlarınız için şimdiden teşekkürler...
Hasan Huseyin Gencer
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Kullandığın veritabanına göre Query veya IBQuery nin SQL ine yazabilirsin;

Kod: Tümünü seç

Query.SQL.Clear;
Query.SQL.Add('select * from musteri where ad like ' + QuotedStr(edit1.text + '%') );
// veya Query.SQL.Add('select * from musteri where ad like ''' + edit1.text + '%''');
Query.SQL.Open;
...
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
hgencer
Üye
Mesajlar: 4
Kayıt: 30 May 2005 12:59
Konum: Denizli
İletişim:

Mesaj gönderen hgencer »

yazdığınız kodu edit1 in onkeypress event ına yazdım fakat calisirken soyle bir hata verdi:
Invalid Use of keyword.
Token: %"
select
Line Number:1

Acaba neden olabilir...
Hasan Huseyin Gencer
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

tırnak ve parantezlere dikkat etmek gerekiyor hatayı bunlardan biri eksik veya fazla olduğu için verebilir diye aklıma geldi.

rsimsek ustamın verdiği örnekte düzenlemeler yaparsan düzelir sanırım.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Kodda sadece sevhen Query.Open; yerine Query.SQL.Open; yazılmış :wink:

Database olarak DBDEMOS alias ı seçilerek aşağıdaki her iki yazım şekil ile de çalışıyor;

Kod: Tümünü seç

  Query1.SQL.Clear;
  Query1.SQL.Add('select * from employee where firstname like ' + QuotedStr(edit1.text + '%') );
//  Query1.SQL.Add('select * from employee where firstname like ''' + edit1.text + '%''');
  Query1.Open;
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
hgencer
Üye
Mesajlar: 4
Kayıt: 30 May 2005 12:59
Konum: Denizli
İletişim:

Mesaj gönderen hgencer »

kusura bakmayın,tırnalkarla ilgiliymiş sanırım. sorun düzeldi ve çalışıyor. çok teşekkürler.
Hasan Huseyin Gencer
Cevapla