Interbase de Kayıt Araken Büyük Küçük Harf Sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
sako
Üye
Mesajlar: 477
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Mesaj gönderen sako »

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from kanun');
Query1.Sql.Add('Where Lower(kanun) Like Lower(''%'+Edit1.Text+'%'')');
Query1.Open;
End;

bu kod çalışıyor. Aslında diğerleride çalışıyormuş :oops: ama sorguyu neden yapmadığını anladım. En azından tahmin ediyorum. Benim arama yaptırdığım alan oldukça uzun karakterler içeriyor. Yani bi metin eklemişim 500-1000 karakter arası ve bi çok kayıtta var bu. (kendi yönetmeliklerimizi programa aktardım kanunun maddelerinin içerikleri oldukça uzun oluyor)Diğer küçük aramalarda sorun yok ama bu uzun alanlar ile ilgili arama yaparken hata veriyor. Forumda kelimeleri tek tek almak falan gibi bişey gördüm dün ararken ama pek ayrıntı yok. Bu arama işlemine bi çözüm bulmam gerek arkadaşlar yardımlarınızı bekliyorum.

kolay gelsin..
En son sako tarafından 22 Nis 2005 10:50 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Forumun zenginliği açısından Muharrem beyin fikirlerine katılmamak mümkün değil.

Burada aynı zamanda @FAQsoft un de yardım çabasında olması takdir edilecek bir durumdur. Örnek link şeklinde değil de copy / paste ile (kaynak belirtilerek) yazılarak aramalarda da yardımcı olacak kanaatindeyim.

Soruya gelirsek; BÜYÜK / küçük harf ayrımında veritabanının desteğine bağlı olarak mesela firebird CONTAINING anahtar kelimesini kullanarak LIKE anahtar kelimesi gibi hem de büyük küçük harfe duyarsız bir sorgu üretilmektedir..

Kod: Tümünü seç

select * from tablo where uye_adi like '%Ali%' or UPPER(uye_adi) like '%ALİ%'
ile

Kod: Tümünü seç

select * from tablo where uye_adi CONTAINING 'Ali'
aynı sonucu vermektedir. Burada bazı Türkçe harflerde problem olabilir :!:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Merhabalar,

myonur arkadaşımıza verdiği bilgi için teşekkür ediyoruz. Ancak şu da unutulmamalıdır ki, programcılıkta çeşit çeşit yöntemler vardır, bu kesin böyledir diyebileceğimiz çok az konu vardır ve bu yüzden bu iş sanattır.

Herkes için değişiklikler ve farklı yöntemler içerebilir. Bilinen doğru en doğru olmayabilir, yerine göre en iyi yöntem olabilir ama kesinkez bu böyledir demek doğru olmaz. Nitekim Gökmen'in söylediği tarzda bir yapı da kullanılabilir kullanılmaz değil, ancak sizin söyledğiniz olay daha doğru bir kullanım olmakta.

Polemik olsun diye değil, tam tersine paylaşımımızı daha güzel bir şekilde yapabilelim diye fikrimi söyledim.

Herkese Teşekkürler.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
sako
Üye
Mesajlar: 477
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Mesaj gönderen sako »

sako yazdı:Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from kanun');
Query1.Sql.Add('Where Lower(kanun) Like Lower(''%'+Edit1.Text+'%'')');
Query1.Open;
End;

bu kod çalışıyor. Aslında diğerleride çalışıyormuş :oops: ama sorguyu neden yapmadığını anladım. En azından tahmin ediyorum. Benim arama yaptırdığım alan oldukça uzun karakterler içeriyor. Yani bi metin eklemişim 500-1000 karakter arası ve bi çok kayıtta var bu. (kendi yönetmeliklerimizi programa aktardım kanunun maddelerinin içerikleri oldukça uzun oluyor)Diğer küçük aramalarda sorun yok ama bu uzun alanlar ile ilgili arama yaparken hata veriyor. Forumda kelimeleri tek tek almak falan gibi bişey gördüm dün ararken ama pek ayrıntı yok. Bu arama işlemine bi çözüm bulmam gerek arkadaşlar yardımlarınızı bekliyorum.

kolay gelsin..
benim bu sorum güme gitmiş bu arada :roll:
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@sako

- Öncelikle Paradox'u kullanmayı bırakmanı, yerine başka bir veritabanı (Firebird veya Access) tercih etmeni önericem...

- Sonra etüd edeceğin konu Türkçe harfler meselesi olacaktır. Lower ile "I" harfini " i " mi yoksa " ı " yapacaktır? Veritabanı dil ayarların sorunsuz mu ? Araştırma noktan buradan olsun... Sorunda bunlara yer vermemişsin... :idea:
Resim
Resim ....Resim
sako
Üye
Mesajlar: 477
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Mesaj gönderen sako »

Aslında programı tamamlamak için düzenliyorum. Yoksa Yani daha önceden Paradox ile yapılmış olduğu için değiştirmek istemedim. firebird dururken paradoxu başıma bela etmem.Harfle ilgili bi sorun yokki zaten. Sadece aramayı yaptırmak istediğim alan biraz uzun karakterler içeriyor. Mesela 2-3 sayfalık bi metin. Yani bi kanunun içeriğinde arama yapıyorum. Diğer kısa alanlarda problem yok kanun adı-maddesi gibi . Fakat içeriğinden bi kelime yazıp arattığım zaman type msmatch ... hatası veriyor.
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
sako
Üye
Mesajlar: 477
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Mesaj gönderen sako »

ya arkadaşlar bu aramayı bi türlü halledemedim valla. :oops: Ne yapmalıyım sizce. Arama ile buldum bi kaç çözüm ama dediğim gibi kısa cümle içeriği olanları yapıyor. Uzun içerikli alanlarda hata veriyor..
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
Cevapla