Arama yaparken küçük büyük harf

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
AfterPost
Üye
Mesajlar: 144
Kayıt: 12 Tem 2014 10:22

Arama yaparken küçük büyük harf

Mesaj gönderen AfterPost »

Değerli arkadaşlar;
tbl_stok.Close;
tbl_stok.SelectSQL.Clear;
tbl_stok.SelectSQL.Add('select * from STOK where FIRMAID=:FIRMAID AND STATU='+QUOTEDSTR('Kullanımda')+' AND STOKADI like' + QuotedStr(Edit1.Text+'%'));
tbl_stok.Open;

Firebird kullanıyorum gayet güzel bir veritabanı yalnız aramada bir sorun çıkardı
Yukardaki kod büyük küçük harf ayrımı yapıyor..Upper(STOKADI) adı dedim hepsini büyük harfe çevirdim
arama editinida uppercase moduna getirdim fakat sorun şurada ki i-İ ve ı-I da sorun veriyor

sorun "I" ye bastığımda ı yapıyor i ye bastığımda "I" yapıyor
denizfatihi
Üye
Mesajlar: 254
Kayıt: 16 Şub 2004 06:12
Konum: istanbul

Re: Arama yaparken küçük büyük harf

Mesaj gönderen denizfatihi »

Set tarafı ile ilgili kısma baktın mı ?

http://www.serkanince.com/2014/07/fireb ... derme.html
AfterPost
Üye
Mesajlar: 144
Kayıt: 12 Tem 2014 10:22

Re: Arama yaparken küçük büyük harf

Mesaj gönderen AfterPost »

Onu denedim olmadı , sorun şu arama editini uppercase dediğim halde I yi ı ya dönüştürüyor malum ingilize de böyle bir harf yok.
Nomercy
Üye
Mesajlar: 62
Kayıt: 17 Kas 2014 12:33

Re: Arama yaparken küçük büyük harf

Mesaj gönderen Nomercy »

Şunu denermisin;

Kod: Tümünü seç

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  case Key of
    'ı':Key:='I';
    'i':Key:='I';
  end;
end;
AfterPost
Üye
Mesajlar: 144
Kayıt: 12 Tem 2014 10:22

Re: Arama yaparken küçük büyük harf

Mesaj gönderen AfterPost »

case Key of
'ı':Key:='I';
'i':Key:='İ';
end; dediğim zaman sorun düzeldi gibi ama tabloya iplik diye bir ürün eklediğimiz zaman bulmuyor
çünkü Upper(STOKADI) i ' yi İ' ya dönüştürmüyor, tabloya İ girmesi gerekiyor ki kaydı bulsun.
Cevap yazan arkadaşlara teşekkürü bir borç bilirim.
Kullanıcı avatarı
esistem
Üye
Mesajlar: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: Arama yaparken küçük büyük harf

Mesaj gönderen esistem »

Kod: Tümünü seç

tbl_stok.Close;
tbl_stok.SelectSQL.Clear;
tbl_stok.SelectSQL.Add('select * from STOK where FIRMAID=:FIRMAID AND STATU='+QUOTEDSTR('Kullanımda')+' AND STOKADI CONTAINING QuotedStr(Edit1.Text));
tbl_stok.Open;
LIKE yerine yukarıdaki şeklinde yapabilirsiniz, CONTAINING büyük küçük harf ayırt etmez. Birde STATU diye bir alanınız var sanırım oda string olarak tanımlı SQL sorgularında WHERE koşulunda string sorgular integer yada float sorgulara göre daha yavaş çalışır, STATU alanınızı smallint olarak tanıtıp 0 ise serbest, 1 ise kullanımda, 2 ise vs.vs. şeklinde kullanmanız performans olarak daha iyi sonuç verecektir.
Cevapla