SQL like komutu doğru düzgün çalışmıyor

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
fatihbarut

SQL like komutu doğru düzgün çalışmıyor

Mesaj gönderen fatihbarut »

merhaba arkadaşlar
like '%asd%' şeklinde taratıyorum. Bulmuyor ama tek hane yazarsam
'%a%' buluyor. Şaşırdım yahu. Nerde problem var
fatihbarut

Çözüm

Mesaj gönderen fatihbarut »

Merhaba arkadaşlar,
bir çok kişi gibi kendi soruma kendim cevap vereyim.
Kanımca delphinin bu konuda bir bugu var. Düşündüğünüz yöntemle değil kendi düşündüğü ile amel etmenizi istiyor.
Şöyleki

Parametre kullanmak zorundasınız.
Örneğin
IBquery.sql.add('select * from filantablo where filancaalan like :benimparametre) yani buna benzer birşey yazıyorsunuz. bir kelimenin başına boşluk bırakmadan iki nokta üst üste işareti yazmanız onun değişken bir parametre olduğunu gösteriyor.
daha sonra bu değişkene dışarıdan ulaşıp istediğiniz gibi yönetiyorsunuz. aşağıdaki kodla
IBquerry.parambyname('benimparametre').asstring veya as herneyse :='filan falan' şeklinde...
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Olayın delphi ile alakası olmamalı. Sorguyu nasıl hazırladığınız açık olmadığından kesin bir şey söylemek zor.
Bu, trafik kazalarında hataların %85 sürücülerden kaynaklandığı tespiti olayını hatırlatıyor :wink:

Kod: Tümünü seç

select adi from stok_kart
where adi like '%yağ'
Burada yağ ile bitenler gelirken,

Kod: Tümünü seç

select adi from stok_kart
where adi like '%yağ%'
burada içinde yağ olan kayıtlar gelecektir. Dikkat edilecek konu LIKE ile büyük/küçük harf duyarlı arama yapılır :idea: Harfe duyarlı olsun istenmiyorsa aşağıdaki gibi CONTAINING kullanılabilir;

Kod: Tümünü seç

select adi from stok_kart
where adi containing 'yağ'
Dikkat edilirse burada % (yüzde) işaret(ler)i yoktur :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
fatihbarut

teşekkürler ve hatırlatmalar

Mesaj gönderen fatihbarut »

Öncelikle teşekkürler.
Containing ifadesini biliyordum. Fakat uzun süredir kullanmadığım için hatırlattığınız iyi oldu.
İkinci olarak Fikrinizde haklısınız hataların çoğu kullanıcı tarafından yapılır delphiye mal edilir.
Fakat ben yeterince deneyde bulunmadan konuşmam... like konusu benim denediğim bir konu, açıkça kabul etmiyor cihaz....
burada eklemem gereken önemli bir şey var. benim tarattığım alan richedit ile edit edilen bir blob fielddı...
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

RichText Format'ı metin gibi olmadığından sorgun çalışmıyor. Bunu en iyi bir .rtf dosyasını Notepad programında açarak görebilirsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
fatihbarut

Mesaj gönderen fatihbarut »

sabanakman yazdı:RichText Format'ı metin gibi olmadığından sorgun çalışmıyor. Bunu en iyi bir .rtf dosyasını Notepad programında açarak görebilirsin.
Vay be ne teşhis. 40 yıl düşünsem aklıma gelmez. Eğer beyin yerine saman kullanıyorsam.. Neyse sorunun çözümünü zaten yukarıda yazdım.

Bu arada blob fieldlar için blob subtype1'in özellikle richedit gibi rtf formatı kullanan alanlar için tasarlandığını sanıyorum. Çünkü diğerlerinden farklı olarak font karakterinizi seçebiliyorsunuz... Normal blob ile bunun arasında performans farkı var mı bilmiyorum ancak deneyen arkadaşlar diğer arkadaşlara tecrübe olması açısından yazmak isterse sanırım iyi olur.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Re: teşekkürler ve hatırlatmalar

Mesaj gönderen rsimsek »

fatihbarut yazdı:....
burada eklemem gereken önemli bir şey var. benim tarattığım alan richedit ile edit edilen bir blob fielddı...
Sorunun çözümü ve tespit için geçte olsa faydalı bir ipucu :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla