birden fazla kritere göre arama II

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
Misafir

birden fazla kritere göre arama II

Mesaj gönderen Misafir »

if edit1.Text<>('') then
Begin
query1.SQL.Clear;
query1.SQL.Add('select * from musteri where firma like ''' + Edit1.Text + '%'' or tarih = :tarih or yer = :yer or telefon = :telefon');
Query1.ParamByName('tarih').AsDate:=StrToDate(edit2.Text)
query1.ParamByName('yer').AsString:=edit3.Text
query1.ParamByName('telefon').AsString:=edit4.Text
query1.Open;
end
else
Showmessage('Arama kriterlerinden birini giriniz');


or kullandığıım halde sanki and varmış gibi diger editlerinden boş oldugu şekilde işlem yapıyor ve invalid type hatası veriyor...

kısacası 4 tane edit in içinden hangileri girilmişsse onu aramalı...girilmeyenleri ise gözardı etmeli bunu yapmaya çalışıyorum...
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Mesaj gönderen sair »

or kullanımını biraz daha inceleyin
firma=a or firma=b gibi bir or kullanımında düzgün sonuç alacaksınız
ancak firma=a or tarih=b or yer=c gibi bir kullanımda parantezler kullanarak yapın bu işlemi Yani or alanlarını guruplayın.Aşağıdaki kodu deneyin...

if edit1.Text<>('') then
Begin
Query1.Close;
Query1.Unprepare;
query1.SQL.Clear;
query1.SQL.Add('select * from musteri where (firma=:Fir) or (tarih = :tarih or yer = :yer or telefon = :telefon)');
Query1.Prepare;
Query1.ParamByName('firma').AsString:=Edit1.Text + '%''
Query1.ParamByName('tarih').AsDate:=StrToDate(edit2.Text)
query1.ParamByName('yer').AsString:=edit3.Text
query1.ParamByName('telefon').AsString:=edit4.Text
query1.Open;
end
else
Showmessage('Arama kriterlerinden birini giriniz');
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Sair Hocam Query1.Unprepare ve Query1.Prepare komutları kullanım amacı ve ne işe yaradıkları hakkında bilgi verirseniz sevinirim.

İyi Çalışmalar.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Misafir

Mesaj gönderen Misafir »

verdiğiniz kodlar ile de aynı işlemi yaptı..yinede ara butonuna basınca direk bütün editlere bakıyor...yani edit in için boş ise arama işlemi yapmamalı...
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Fahrettin Abi herhalde yaşlanıyorum. Benim sorduğum bir sorunun devamında bu konu geçmiş. Hatırlatma için teşekkür ederim.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Cevapla