string ifadeyi küçük harf çekmek

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
try
Üye
Mesajlar: 44
Kayıt: 14 Nis 2005 03:21

string ifadeyi küçük harf çekmek

Mesaj gönderen try »

select * from stokkartlari where lower(stok_ismi)='.... şeklindeki bir ifade de lower fonksiyonunu çalıştıramıyorum. upper ifadesi çalışabiliyor ancak lower ifadesi çalışmıyor. kullandığım db firebird 1.5 acaba neden olabilir? nasıl yapabilirim?
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.

Kod: Tümünü seç

select lower(stok_ismi) from stokkartlari
bi bak bakalım lower çalışıyormu çalışmıyormu?
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
try
Üye
Mesajlar: 44
Kayıt: 14 Nis 2005 03:21

Mesaj gönderen try »

hayır çalışmıyor. acaba udf lerden çıkarıldı mı ya da nedir acaba sorun?
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

lower i silip ddl inden yeniden oluşturmayı bi dene
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
try
Üye
Mesajlar: 44
Kayıt: 14 Nis 2005 03:21

Mesaj gönderen try »

nasıl yapabilirim acaba?
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Firebird 2.1'den öncesi bir sürümlerde bu tarz dahili fonksiyonlar yok. UDF kullanarak yapmanız lazım.

Hangi UDF'i kullanıyorsanız, onun Lower fonksiyonunu nasıl tanımlanmışsa, sizin veritabanınıza tanımlamanız lazım. "C:\Program Files\Firebird\Firebird_1_5\UDF" klasörüne bakın. Örneğin "ib_udf.sql".

Yoksa lower tanımını ekleyin, varsa silip tekrar oluşturun. Çalıştırdığınız zaman sorun çıkarsa lütfen hatanın tam metnini ve varsa kodunu gönderirseniz, sorun hakkında daha net fikir sahibi olabiliriz.

Kolay gelsin.
try
Üye
Mesajlar: 44
Kayıt: 14 Nis 2005 03:21

Mesaj gönderen try »

ilginiz için çok teşekkürler. gerçekten de tekrar deklare etmek gerekiyormuş. aşağıdaki şekilde yapınca oldu.

Kod: Tümünü seç

DECLARE EXTERNAL FUNCTION lower 
	CSTRING(80)
	RETURNS CSTRING(80) FREE_IT
	ENTRY_POINT 'IB_UDF_lower' MODULE_NAME 'ib_udf';
try
Üye
Mesajlar: 44
Kayıt: 14 Nis 2005 03:21

Mesaj gönderen try »

bir soru daha soracağım, bu konuya devam etmek mi doğru yoksa yeni başlık mı açsam bilemedim.

lower fonksiyonu Ö, Ğ, Ş harflerini o, g, s şeklinde değiştirebilecek şekilde yapılabilir mi ya da bu işlemi database tarafında nasıl yapmalıyım? şu an büyük harf olarak bırakıyor bu karakterleri...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

ben bu fonksiyonu denemedim ama 2.1'deki dahili fonksiyon karakter setine göre büyük/küçük harfe çeviriyor. Yani charset : Win1254, collate : PXW_TURK yaparsanız tamamen Türkçe davranıyordu.

Denemekte fayda var.

Kolay gelsin.
Cevapla