Filtreleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Filtreleme

Mesaj gönderen erdogan_ozkaya »

Arkadaşlar aşağıdaki kodu filtrelemek için kullanıyorum fakat şöyle birşey yapmak istiyorum "Edit1.text'e" örnek : Erdoğan;Ahmet;Mehmet gibi bilgi girerek Erdoğan;Ahmet;Mehmet kayıtlarını filtrelemek istiyorum nasıl yapabilirim.

Kod: Tümünü seç

  Memo1.Clear;
  ADOQuery2.Close;
  ADOQuery2.sql.Clear;
  ADOQuery2.SQL.Add('SELECT * from Kayit WHERE (Tarih BETWEEN :Tar1 and :Tar2)');
  ADOQuery2.Parameters.ParamByName('Tar1').Value := FormatDateTime('DD/MM/YYYY',DateTimePicker1.date);
  ADOQuery2.Parameters.ParamByName('Tar2').Value := FormatDateTime('DD/MM/YYYY',DateTimePicker2.date);

     if Edit1.Text<>'' then begin
  ADOQuery2.SQL.Add(' and Kullanici='+QuotedStr(Edit1.Text)+'');
  End;
 
   Memo1.Lines.add(ADOQuery2.sql.text);
   ADOQuery2.Open;
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Re: Filtreleme

Mesaj gönderen bobasturk »

merhaba,

tek seferde ERDOĞAN;AHMET;MEHMET olanları mı filtrelemek istiyorsun yada edit içine girilen birtek ismi mi filtrelemek istiyorsun.

zira ilk yazdığın kod içinde tarih lerden sonra and ile alan belirtirsen iki tarih arasında verilen alandaki değerleri filtreler ve getirir.

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
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: Filtreleme

Mesaj gönderen erdogan_ozkaya »

Kardeş Kullanıcı tablosunda atıyorum ahmet mehmet ali veli hasan hüseyin var ben edite sadece ahmet değilde ahmet;mehmet kullanıcısı yazcam kullanıcı tablosunda ahmet mehmet kullanıcıları çıksın taarihe gelince tarihle bir işim yok şuanda kullandığım kodu yazdım ben
Kolay gelsin
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Filtreleme

Mesaj gönderen aslangeri »

sa.

Kod: Tümünü seç

     if Edit1.Text<>'' then begin
  ADOQuery2.SQL.Add(' and Kullanici='+QuotedStr(Edit1.Text)+'');
  End;
burada begin end arasında edit1 in textine yazdığınız değerde ufak bir operasyon yapmamız gerekecek ve "=" yerine "in" operatorunu kullanacağız.
edit1 in textinde

Kod: Tümünü seç

ahmet;mehmet;saffet
var diyelim.
normalde elimizle yazacak olsak bunu nasıl yazarız
ben olsam

Kod: Tümünü seç

kullanici in ('ahmet','mehmet','saffet')
şeklinde yazarım.
o zaman kodumuzu da o hale getireceğiz.

Kod: Tümünü seç

ADOQuery2.SQL.Add(' and Kullanici in ('+QuotedStr(Edit1.Text)+')');
; yerine de ',' koyduğumuz zaman bu iş tamamdır.
onun içinde ansireplacestr komutunu kullanabiliriz.

Kod: Tümünü seç

ADOQuery2.SQL.Add(' and Kullanici in ('+QuotedStr(ansireplacestr(';',''',''',Edit1.Text)+')');
ansireplacestr nin kullanımını araştır. ben parametreleri rastgele verdim senin doğru şekilde vermen lazım.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: Filtreleme

Mesaj gönderen erdogan_ozkaya »

ilgine çok teşekkür ederim fakat açıkcası çözemedim bir türlü :)
çözemediğim şey ise
ansireplacestr bunu nasıl kullanacağım ilgili bir örnek buldum oda sanırım sadece büyük küçük harf duyarlı olması kodu yazabilirsen minnettar olurum saol.

Kod: Tümünü seç

var
  haystack : AnsiString;
begin
  haystack := 'The big cat sat on the big mat';
  ShowMessage(haystack);   // Display the haystack at the start

  // Note that AnsiReplaceStr is case sensitive
  haystack := AnsiReplaceStr(haystack, 'BIG', 'LITTLE');
  ShowMessage(haystack);   // Display the haystack now

  haystack := AnsiReplaceStr(haystack, 'big', 'little');
  ShowMessage(haystack);   // Display the haystack now
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: Filtreleme

Mesaj gönderen erdogan_ozkaya »

hocam çok araştırdım ama bir sonuca varamadım acaba bir örnek kod ile verebilirmisin senin dediğin gibi yapmama rağmen bir türlü olmadı
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Filtreleme

Mesaj gönderen aslangeri »

kardeş sadece ansireplacestr nin nasıl çalıştığına bakacaksın.
helpine bak parametreler doğru yerleremi atılmış yanlışsa onları doğru yerlere koy o kadar.
müsait olmadığım için onu kontrol edemedim.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla