Büyük, Küçük Harfe Duyarsız Yapmak

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Büyük, Küçük Harfe Duyarsız Yapmak

Mesaj gönderen Fatih! »

tabloda arama yaptıysanız Büyük Küçük Harfe Duyarlı Olduğunu Görmüşsüzdür. Bunu ben kendi yöntemimle hallediyorum.hangi Veritabanını kullanıyorsanız Gerekli bağlantıları yapın.
arama işlemi için bir edit ve bir buttonda ekleyin. Öncelikle Aşağıdaki fonksiyonu tanımlayın.

Kod: Tümünü seç

Function formtyaz(frmy: ansistring): ansistring;
var 
a:integer; ch:string; 
begin 
if length(frmy)=0  then 
exit;
FOR A:=1 TO LENGTH(FRMY) DO 
BEGIN 
CASE FRMY[A]  OF 
'ı': FRMY[A] := 'I'; 
'i': FRMY[A] := 'İ'; 
else
begin
ch:=FRMY[a];
ch:=ansiUpperCase(ch);
FRMY[a] :=ch[1];
end;
end; end;
result:=frmy;
end;
Daha Sonra buttonun OnClick olayına aşağıdaki kodu yazın.

Kod: Tümünü seç

IF Edit1.Text<>'' THEN
Begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from MUSTERI WHERE upper(ADI)=:AD');
Query1.Params[0].AsString:= formtyaz(Edit1.Text);
Query1.Open;
End;
Bu işlemi Like içinde yapabilirsiniz. buradaki mantık önce edit içindeki yazıları büyük harfe çeviriyoryz. daha sonra SQL 'nin büyük harfe çevirme fonksiyonu olan UPPER( Alan adı ) şeklinde alandaki değeride büyük harffe çeviriyoruz. Böylece aradığınız ile alandaki bilgi bire bir eşleşiyor.

Burada tablonuzun Adı MUSTERI arama işlemi için kullandığınız alan ismi ise ADI olarak varsayılmıştır.
Projeyi çalıştırıp test edebilirsiniz.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,

Makale için tşk ederim.
Ama aklıma takılan bişey oldu bunu neden SQL ile kullanmalıyız veya nerelerde böyle birşeye ihtiyaç olur.

Mesela ben Büyük küçük harfe duyarlı yapmak için direk olarak arama yapılacak editte bu işi çok basit şekilde (CharCase/ecLoverCase) şeklinde çözüyorum hal böyle olunca sorun kalmıyor.

Saygılarımla.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,

Sen söyleyince aklıma geldi tşk ederim açıklayıcı bilginizden dolayı

ı İ mevzusuymuş.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

e madem upper fonksiyonu düzgün çalışıyor delphi tarafına ne gerek var?

Kod: Tümünü seç

Query1.SQL.Add('select * from MUSTERI WHERE upper(ADI)=Upper(:AD)');
yazmak aynı kapıya çıkmıyor mu?
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Mesaj gönderen Fatih! »

Biliyorum hocam ama yazarken bilmiyordun :)
Demitri

Mesaj gönderen Demitri »

paylaşım için teşekkürler.
Cevapla