Filtereleme sorunu

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Amuzende
Üye
Mesajlar: 30
Kayıt: 07 Tem 2008 04:26

Filtereleme sorunu

Mesaj gönderen Amuzende »

DataSet1.SelectSQL.Add('Select * From STOK Where AD Like '''+Edit1.Text+'%''');

Bu şekilde güzelce çalışıyor fakat büyük küçük harf sorunu oluyor.

DataSet1.SelectSQL.Add('Select * From STOK Where AD Like '''+UpperCase(Edit1.Text)+'%''');

Şeklinde yapıncada güzelce çalışıyor fakat bu seferde ç,ü,ğ vs... harfleri büyük harffe çevirmiyor :D ,

Ne önerirsiniz???
Amuzende
Üye
Mesajlar: 30
Kayıt: 07 Tem 2008 04:26

Re: Filtereleme sorunu

Mesaj gönderen Amuzende »

Evet bu sorunu çözdü. Teşekkürler.

Peki veritabanında hepsi küçük veya büyük harf olmadığı durumlarda nasıl yaparız filtrelemeyi?
Table in filtresinde foCaseInsensitive diyebirşey var. bu sorunu hallediyor, fakat sql ile nasıl yapacağız bunu??
Amuzende
Üye
Mesajlar: 30
Kayıt: 07 Tem 2008 04:26

Re: Filtereleme sorunu

Mesaj gönderen Amuzende »

Evet daha önce bahsetmişdiniz ve ben yine yapamamıştım onu :D Buradaki (ISIM) as ADSOYAD kısmını anlayamadım. Benim tabloda AD,ADRES,TRH alanalrı var. Bunlar içinden mesela ADRES alanını Edit1 in içine yadığım yazıyla filtrelemek istiyorum. Kodun tam olrak nasıl olması gerek? Yardımlarınızı bekliyorum :oops:
Amuzende
Üye
Mesajlar: 30
Kayıt: 07 Tem 2008 04:26

Re: Filtereleme sorunu

Mesaj gönderen Amuzende »

Çok teşekkür ederim. Her sorama usanmdan cevap veriyorsun :bravo:

Yeni sorularımla görüşmek üzere :D
Amuzende
Üye
Mesajlar: 30
Kayıt: 07 Tem 2008 04:26

Re: Filtereleme sorunu

Mesaj gönderen Amuzende »

Kendimi fazla özletmeyeyim dedim :D Şimdi de şunu sorayım; Tarih alanını nasıl filtrelerim?
DataSet1.SelectSQL.Add('Select * From STOK Where STRH Like '+QuotedStr(DateEdit1.Text)+''); bu çalışmıyor. Zaten yazdığım 4 koddan biri çalışmıyor :lol:
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Re: Filtereleme sorunu

Mesaj gönderen rsimsek »

QuotedStr() zaten tırnakları ekliyor. Sondaki tırnaklar fazla.

Kod: Tümünü seç

DataSet1.SelectSQL.Add('Select * From STOK Where STRH Like ' + QuotedStr(DateEdit1.Text)); 
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Amuzende
Üye
Mesajlar: 30
Kayıt: 07 Tem 2008 04:26

Re: Filtereleme sorunu

Mesaj gönderen Amuzende »

rsimsek yazdı:QuotedStr() zaten tırnakları ekliyor. Sondaki tırnaklar fazla.

Kod: Tümünü seç

DataSet1.SelectSQL.Add('Select * From STOK Where STRH Like ' + QuotedStr(DateEdit1.Text)); 
Bu kodda bir sonuç vermedi. Herşey normal gibi gözüküyor fakat neden bir sonuç çıkarmıyor anlamadım?
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Filtereleme sorunu

Mesaj gönderen freeman35 »

DataSet1.SelectSQL.Add('Select * From STOK Where STRH Like ' + QuotedStr(DateEdit1.Text +'%' ));
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Amuzende
Üye
Mesajlar: 30
Kayıt: 07 Tem 2008 04:26

Re: Filtereleme sorunu

Mesaj gönderen Amuzende »

Yine olmadı. Kafayı yiyecem yakında :x
Amuzende
Üye
Mesajlar: 30
Kayıt: 07 Tem 2008 04:26

Re: Filtereleme sorunu

Mesaj gönderen Amuzende »

Yok oda işe yaramadı.

Verileri kaydederken tarih kısmını
Fields.FieldByName('KTRH').AsString:=DateEdit1.Text;
olarak kullanıyorum acaba bundan dolayımı? String olduğundan mı? Veri tabanı DATE olarak ayarlı.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Filtereleme sorunu

Mesaj gönderen freeman35 »

Tarih alanı olduğuna dikkat etmemişim,
Her yazımda söylüyorum, şu tarih leri string olarak kullanmayın diye ama genede yazılarım okunmuyor sanırım. Bunun bana zararı yok sadece sizler tırmalayıp duruyorsunuz. madem field date neden kullanıcı string giriyor ? neden TEdit kullanıyorsunda TDateTimePicker kullanmıyorsun? sorgunuda şöyle oluştur, ramazan_t nin kini parametrik yap
Select * From STOK Where STRH>=:Ilk__ and STRH<=:SON__ --BETWEEN de kullanabilirsin

kullanırkende
q1.ParamByName('Ilk__').AsDateTime := Date + StrtoTime('00:00:000');
q1.ParamByName('Son__').AsDateTime := Date + StrtoTime('23:59:59');

date i string olarak kullandığınızda fb serverın kullandığı formatta vermek zorundasınız, bu tip karışıklıkları önlemenin tek yolu date tipindeyse date kullanmak
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
cemrebilgisayar
Üye
Mesajlar: 52
Kayıt: 02 Nis 2007 04:52
İletişim:

Re: Filtereleme sorunu

Mesaj gönderen cemrebilgisayar »

merhaba arkadaşlar,
öncelikle yardımlarınız için teşk ederim. bu konuda upper yazmışınız ama bu sadece tek bir kolonu büyük harfe çeviriyor. tablonun tamamını büyük harfe çeviren kod varmı. yani adı, soyadı, ticari ünvanı, il , ilçeyi gibi. diğer türlü her bir kolon için upper kullanmak gerekli
CEMRE BİLGİSAYAR YAZILIM
http://www.cemre.web.tr
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Filtereleme sorunu

Mesaj gönderen sabanakman »

Hepsine teker teker upper yazmalısın.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
fatmay
Üye
Mesajlar: 4
Kayıt: 05 Nis 2006 11:39

Re: Filtereleme sorunu

Mesaj gönderen fatmay »

merhabalar,
elimde başkası tarafından başlanmış ama benim bitirmem gereken bir proje var ve tarih alanı varchar tanımlanmış. filtreleme yapmam gerekiyor ama hata veriyor. yukarıdaki gibi yaptım ama olmadı.
tar1:=datetostr(DateTimePicker1.Date);
tar2:=datetostr(DateTimePicker2.Date);
dm.q.Close;
dm.q.SQL.Clear;
dm.q.SQL.Add('select * from stok_giris');
dm.q.SQL.Add('where tarih BETWEEN :t1 and :t2');
dm.q.ParamByName('t1').AsDateTime:=strtodate(tar1)+strtotime('00:00:000');
dm.q.ParamByName('t2').AsDateTime:=strtodate(tar2)+strtotime('23:59:59');
dm.q.open;


sorgu yaparken tarih alanı varchar tanımlı olduğundan sadece gün bazında sorguluyor. ay ve yıla bakmıyor.
yardımlarınız için teşekkürler .Please help me...
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Re: Filtereleme sorunu

Mesaj gönderen rsimsek »

VARCHAR tipindeki tarih alanlarını birer DATE alan oluşturup oraya CAST ile çevirip UPDATE etmelisin. Yoksa günü kurtarsan bile bu durum sürekli sorun yapacaktır :!:

Kod: Tümünü seç

update tablo1 
   set yeni_tarih1 = cast(eski_tarih1 as date),
       yeni_tarih2 = cast(eski_tarih2 as date) 
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla