interbasede filtrelemede harf duyarlılığı

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
delphikursu
Üye
Mesajlar: 99
Kayıt: 24 Tem 2004 05:13
Konum: kayseri
İletişim:

interbasede filtrelemede harf duyarlılığı

Mesaj gönderen delphikursu »

interbasede filtrelemede harf duyarlılığı olasın istiyorum ister küçük harf olsun isterse büyük harf olsada bulmasını istiyorum bunu nasıl yapabilirim

IBTable1.FilterOptions:=[foCaseInsensitive];

bu kodu denedim hata verdi
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

Bu mesajı "Firebird" forum alanına bıraksanız daha uygun olurdu sanırım.

Aldığınız hata mesajını yazsanız daha kolay yardımcı olabilirdik.

Ben denediğimde bu özelliğin desteklenmediğine dair bir mesaj aldım. Hoş desteklenseydide İ, ı harflerinde sorun çıkartırdı.

Aslında TIBTable daha çok BDE den Interbase uygulamasını taşımak isteyen geliştiriciler için düşünülmüş bir bileşen. TIBDataSet kullanmak en uygunu olur diye düşünüyorum. Filtre yerine sorgu kullanırsınız. Zaten yazdığınız filtrede delphi tarafından sorguya çevriliyor.

Gelgelelim soruna; Bu klasik bir tekniktir,
girilen değeri büyük (yada küçük) harfe çevirirsiniz, veritabanında karşılaştırma yapacağınız alanına aynı şekilde büyük (yada küçük) harfe çevirirsiniz.

Kod: Tümünü seç

Select * from mytable where Upper(myfield1) = Upper(:userdata)
gibi bir select ifadesi yazılabilir. Burdaki sorun Firebird ve Delphi de ki dönüşüm fonksiyonların Türkçe karekterlerde sorun çıkartıyor olması.
Bununla ilgili çözüm UDF kullanmak ama uzun konu UDF hakkında forumda yeterince bilgi var AnsiUpperCaseTR fonksiyonuda var iki bilgiyi birleştirerek çözüm üretilebilir.


Kolay gelsin
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
Delphi Help yazdı: TFilterOptions is a set that specifies how filter expressions are applied to string fields. It can contain zero or more of the following values:

Value Meaning
------- --------------------------------------------------------------------
foCaseInsensitive Literal strings in the filter are compared to string-valued fields case-insensitively.
foNoPartialCompare Asterisks (*) in the filter are treated as literal characters rather than as wildcards. When filter options does not include foNoPartialCompare, strings that end in an asterisk signify a partial string match with the asterisk matching any number of characters.
Bu değer sıfır girilebilir denmiş ama 0 a izin vermiyor.
Sanırım sizin kullandığınız şekil de harf duyarlı yapıyor. Yani sizin onu kullanmamanız lazım. Şimdi sıfır veremediğimize göre başka bir çözüme gideceğiz.
@poshet303 arkadaşımızın yolundan gideceğiz.
Filter kısmına aşağıdakini yazarsanız.

Kod: Tümünü seç

upper(FUNVANI) collate pxw_turk  LIKE upper('o%') collate pxw_turk
ve ibtable ın filtered özelliğini true yaparsanız. Kayıtlarınızda
OZGUR ve
ozgur olanların her ikisini de size gösterir.

poshet303 yazdı: Bu mesajı "Firebird" forum alanına bıraksanız daha uygun olurdu sanırım.
delphi nin içinde yaptıklarımız programlama kısmına delphi içinde yapmadıklarımız ise ilgili yere sorulur. Dolayısıyla uygun yer programlama forumudur. Adminlerimiz böyle demişti.

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Re: interbasede filtrelemede harf duyarlılığı

Mesaj gönderen ofenX »

Merhaba,
delphikursu yazdı: IBTable1.FilterOptions:=[foCaseInsensitive];

bu kodu denedim hata verdi
Aşağıdaki linkte de bir arkadaş da sormuş. Bu linkte cevap veren desteklenmediğini söylüyor. Sonraki mesajında ise tibquery veya tibdataset türü bir bileşen kullanıp uygun sql deyimi ile almasını söylemiş.
Önceki sonraki mesajları görmek için thread kısmına basabilirsiniz.
http://216.101.185.148/scripts/isapi.dl ... le=3111016

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Cevapla