arama Yapma

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
ademcicek
Üye
Mesajlar: 409
Kayıt: 03 Eki 2003 01:50
Konum: Ankara

arama Yapma

Mesaj gönderen ademcicek »

Herkese Kolay gelsin.

aşağıdaki kodlarla arama yaptırıyorum.Güzel çalışıyor.yıl,ay,birim,tur,telefon numarası göre.
yıl 2004, ay ocak, birim adem diye aradığında o aya ait olan bütün telefon görüşmelerini gösteriyor.
yalınız bu şekil aradığında telefon türlerinden normal,cep,faks,araç telefonu hepsini getiriyor.
eğer telefon türünüde seçersek sadece bir telefon türünü getiriyor.
ben cep telefonu hariç olanları getirmek istiyorum.
yardımlarınızı bekliyorum..

teşekür ederim.

procedure TForm_Rapor.RaproHazirlikYap(sender: TObject);
var Yil, Ay, Birim, Tur, Telefon: string;
Yils, Ays, Birims, Turs, Telefons: string;
begin
Yils := cxComboBox_Yil.Text;
Ays := cxComboBox_Ay.Text;
Birims := cxComboBox_Birim.Text;
Turs := cxComboBox_Tur.Text;
Telefons := Edit_Telefon_No.Text;

if length(Trim(Yils)) <> 0 then
begin
Yil := ' and Yil Like ''%' + Yils + '%''';
end;
if length(Trim(Ays)) <> 0 then
begin
Ay := ' and Ay Like ''%' + Ays + '%''';
end;
if length(Trim(Birims)) <> 0 then
begin
Birim := ' and Birim Like ''%' + Birims + '%''';
end;
if length(Trim(Turs)) <> 0 then
begin
Tur := ' and Tur Like ''%' + Turs + '%''';
end;
if length(Trim(Telefons)) <> 0 then
begin
Telefon := ' and Telefon_No Like ''%' + Telefons + '%''';
end;

ADOQuery_Rapor.Close;
ADOQuery_Rapor.SQL.Clear;
ADOQuery_Rapor.SQL.Add('select * from Kart_Detail where (1=1)' +
Yil +
Ay +
Birim +
Tur +
Telefon);
ADOQuery_Rapor.Open;
Selman72
Üye
Mesajlar: 8
Kayıt: 15 Nis 2004 04:27

Mesaj gönderen Selman72 »

"ben cep telefonu hariç olanları getirmek istiyorum."

dan anladığım cep telefonu olmayanlar ise

Kod: Tümünü seç

and (Cep is Null)
işini görebilirsanırım...
ademcicek
Üye
Mesajlar: 409
Kayıt: 03 Eki 2003 01:50
Konum: Ankara

Mesaj gönderen ademcicek »

arama sonucunda cep telefonuyla ilgili hiç bir kayıttın görünmesini istemiyorum.
normal, faks,araç telefonlarını getirecek cep telefonlarını getirmeyecek.
Kullanıcı avatarı
akgun83
Üye
Mesajlar: 106
Kayıt: 26 Eyl 2003 11:34

Mesaj gönderen akgun83 »

En sonda ;

Kod: Tümünü seç

ADOQuery_Rapor.SQL.Clear; 
ADOQuery_Rapor.SQL.Add('select * from Kart_Detail where (1=1)' + 
Yil + 
Ay + 
Birim + 
Tur + 
Telefon+' AND TUR<>'+QuotedStr('CEP')); 
Kullanıcı avatarı
Yusuf AYDIN
Üye
Mesajlar: 69
Kayıt: 02 Oca 2004 05:45
Konum: Antalya

Mesaj gönderen Yusuf AYDIN »

Select * from Table1 where ...
ifadesi table1 deki tüm kayıtları getirir.

Şayet sadece belirli alanların getirilmesi istiyor iseniz. Belitmelisiz.

Select a.Field1, a.Field2, a.Field3 From Table1 a Where ....

Aslında select * yerine yukarıdaki uygulama daha doğrudur. Çünkü fazla miktarda kayıtları bulunan datalarda performansın artmasına yardımcı olur.

Bu arada NOT:
Select * ile alsanız bile Cep telefonunu ekrana yazdırmamayı da düşüne bilirsiniz.
Cevapla