dataFRM.eskicarihrk.Close;
dataFRM.eskicarihrk.SQL.Clear;
dataFRM.eskicarihrk.SQL.Add('select * from carihrk where carikod like ''%'+E1.Text+'%'''+ 'AND unvan like ''%'+E2.Text+'%''' + 'and evrakno like ''%'+E3.Text+'%''');
dataFRM.eskicarihrk.Open;
arkadaşlar yukarıdaki kodlar sonuç döndürüyor ama arama yapılan 3 alanada veri girilmiş olması gerekiyor....yani tüm editlar boşken kod çalıştığında mesela ünvan alanına bilgi girilmemiş kayıtları göstermiyor..bunu nasıl engelliyebilirim..
ibquery de arama problemi
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
Merhaba
Başarılar,
İpucu : 3 Alanda like metodu kullanman performansta düşüş demektir. Prepare metodu kullanmalısın.dataFRM.eskicarihrk.Close;
dataFRM.eskicarihrk.SQL.Clear;
dataFRM.eskicarihrk.SQL.Add('select * from carihrk where carikod is not null');
if e1.text<>'' then dataFRM.eskicarihrk.SQL.Add('and carikod like '+Quotedstr('%'+E1.Text+'%');
if e2.text<>'' then dataFRM.eskicarihrk.SQL.Add('and unvan like '+Quotedstr('%'+E2.Text+'%');
if e3.text<>'' then dataFRM.eskicarihrk.SQL.Add('and evrakno like '+Quotedstr('%'+E3.Text+'%');
dataFRM.eskicarihrk.Open;
Başarılar,
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
ben sql ile sorgu yazmam gerektiginde;
ibquery1.close;
ibquery1.sql.clear;
ibquery1.sql.add('select * from musteri');
ibquery1.sql.add('where');
//_imdi 5 farkli alan aramamiz gereksin...
ibquery1.sql.add('alan1 like "'+edit1.text+'%" ');// bu mutlak deger olmasi gerekiyor diger 4 alan ise
if edit2.text >'' then begin ibquery1.sql.add('and');
ibquery1.sql.add('alan2 like "'+edit1.text+'%" ');
end;
if edit3.text >'' then begin ibquery1.sql.add('and');
ibquery1.sql.add('alan3 like "'+edit1.text+'%" ');
end;
buna benzer istedigin kadar alan aramasi yapabilirsin ben 11 farkli alan sorguladim ve hic bir sorun çikmadi
kolay gelsin
ibquery1.close;
ibquery1.sql.clear;
ibquery1.sql.add('select * from musteri');
ibquery1.sql.add('where');
//_imdi 5 farkli alan aramamiz gereksin...
ibquery1.sql.add('alan1 like "'+edit1.text+'%" ');// bu mutlak deger olmasi gerekiyor diger 4 alan ise
if edit2.text >'' then begin ibquery1.sql.add('and');
ibquery1.sql.add('alan2 like "'+edit1.text+'%" ');
end;
if edit3.text >'' then begin ibquery1.sql.add('and');
ibquery1.sql.add('alan3 like "'+edit1.text+'%" ');
end;
buna benzer istedigin kadar alan aramasi yapabilirsin ben 11 farkli alan sorguladim ve hic bir sorun çikmadi
kolay gelsin
ender hocam verdiğin kodlar işe yaradı bu kodlara tarih,alacak,borc alanlarınıda eklemek istiyorum fakat onlar like olmayacak birebir eşit olanları bulacak onu nasıl yapcaz..yardımcı olursan sevinirim...
dataFRM.eskicarihrk.Close;
dataFRM.eskicarihrk.SQL.Clear;
dataFRM.eskicarihrk.SQL.Add('select * from carihrk where carikod is not null');
if e1.text<>'' then dataFRM.eskicarihrk.SQL.Add('and carikod like '+Quotedstr('%'+E1.Text+'%');
if e2.text<>'' then dataFRM.eskicarihrk.SQL.Add('and unvan like '+Quotedstr('%'+E2.Text+'%');
if e3.text<>'' then dataFRM.eskicarihrk.SQL.Add('and evrakno like '+Quotedstr('%'+E3.Text+'%');
dataFRM.eskicarihrk.Open
dataFRM.eskicarihrk.Close;
dataFRM.eskicarihrk.SQL.Clear;
dataFRM.eskicarihrk.SQL.Add('select * from carihrk where carikod is not null');
if e1.text<>'' then dataFRM.eskicarihrk.SQL.Add('and carikod like '+Quotedstr('%'+E1.Text+'%');
if e2.text<>'' then dataFRM.eskicarihrk.SQL.Add('and unvan like '+Quotedstr('%'+E2.Text+'%');
if e3.text<>'' then dataFRM.eskicarihrk.SQL.Add('and evrakno like '+Quotedstr('%'+E3.Text+'%');
dataFRM.eskicarihrk.Open