Strlen ve length fonkisyonlari calismiyor.

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Kilitli
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Strlen ve length fonkisyonlari calismiyor.

Mesaj gönderen hi_selamlar »

S.A. arkadaslar...

firebird 2.0 kullaniyorum.

veri tabanimda varchar tipinde bir saham var.

ben bu sahaya girilen degerin boyutunu aldirip buna göre islem yapmak istiyorum. length veya strlen fonksiyonlari calismiyor.

örnegin;

Kod: Tümünü seç

if (length(hesap_kodu)<=3 then
 tipi='A';
else
 tipi='D';

veya

if (strlen(hesap_kodu)<=3 then
 tipi='A';
else
 tipi='D';

bir türlü calistiramadim. neden acaba.

diger bir sorum ise bu islemi computed source ile yapma imkanim varmi ?
nasil.?

tesekkur ederim.
sevgiler ve saygilar.

S.A.
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

rfunc library (udf) icerisinde bahsettiginiz fonksiyonlar var.
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Çalıştıramamaktan kasıt nedir :?: 3 ten küçük eşit şartı mı sağlanmıyor? Şu şekilde dene ;

Kod: Tümünü seç

if length(trim(hesap_kodu))<=3 then
 tipi='A';
else
 tipi='D';
Buradaki hesap_kodu veritanabından mı geliyor? Öyle ise;

Kod: Tümünü seç

if length(trim(IBDataSet.FieldByName('hesap_kodu').AsString))<=3 then
 tipi='A';
else
 tipi='D';
şeklinde yazmalısın.. IBDataSet yerine IBTable veya IBQuery her ne ise onu yaz. Ayrıca açtığın parantezi kapatmamışsın.. :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Mesaj gönderen hi_selamlar »

rsimsek yazdı:Çalıştıramamaktan kasıt nedir :?: 3 ten küçük eşit şartı mı sağlanmıyor? Şu şekilde dene ;

Kod: Tümünü seç

if length(trim(hesap_kodu))<=3 then
 tipi='A';
else
 tipi='D';
abi .. bu islemi yapiyorum.
IBExpert compile ettiginde Length foksiyonunu tanimadigini söylüyor.
Firebird 2.0 kullaniyom. udf icinde özelligin oldugunu söylüyor. fakat nasil yüklenir veya nasil kullanilir bir türlü cözemedim.

amacim hkodu sahasina 3 karakterli bir kod girilmisse 'A' denek 3 karakterden fazla bir bilgi girilmisse 'D' diyerek ilgili saha yazdirmak istiyorum. fakat olmuyor... sahalar ayni veri dosyasinda... :?:
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

if (strlen(alan)<3) then
seklinde kullanman gerek
rfunc nasıl yuklenir dersen forumda arayarak bulabilirsin
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Mesaj gönderen hi_selamlar »

gkimirti yazdı:if (strlen(alan)<3) then
seklinde kullanman gerek
rfunc nasıl yuklenir dersen forumda arayarak bulabilirsin
bu kadar sert olmaniz gereksiz. forumda bizde cok sükür aramayi biliyoruz. fakat ne arayacagini bilmeden neyi arayabiliriz... :?
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

neresi sert anlamadım
ne smiley var nede bir hakaret
bence siz biraz fazla alıngansınız.
gerekli ikazlar yapılmadıgı zaman forum copluge doner.

üst tarafta ne yazıyor ben buraya copy-paste yapayım bulamadıysanız.
Delphi Forum başka forumlara benzemez! LÜTFEN FORUM KURALLARINI OKUYUP, UYUN!!!
ÜŞENME,ERTELEME,VAZGEÇME
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

Merhaba,

öncelikle sakin olalım.

Kod: Tümünü seç

DECLARE EXTERNAL FUNCTION strlen 
    CSTRING(32767)
    RETURNS INTEGER BY VALUE
    ENTRY_POINT 'IB_UDF_strlen' MODULE_NAME 'ib_udf';
ile fonksiyonu UDF olarak ekleyin

Kod: Tümünü seç

select iif(strlen(name) = 3, 'A','B') from table1;
gibi bir komut ile de istediğinizi elde edebilirsiniz.

iif fonksiyonu Firebird 2.0 için geçerlidir. Ben Firebird 2.0'ı henüz kullanmanızı tavsiye etmiyorum. Alfa olduğu için ileri sürümlerinde yapılacak değişiklikler için geriye uyumluluğu gözetmeyeceklerdir.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

forumda rfunc diye aratınca 13 mesaj cıkıyor.
nerden indiririm nasıl kurarım
zaten kucucuk bir dll yanında kurmak icin birde sql dosyası
At la Deve degil yani

Tekrar tekrar yazmayalım aynı seyi diye arkadasa "Arayarak bulabilirsin" dedik, yazdıgı cevaba bak.....
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Mesaj gönderen hi_selamlar »

gkimirti yazdı: üst tarafta ne yazıyor ben buraya copy-paste yapayım bulamadıysanız.
Delphi Forum başka forumlara benzemez! LÜTFEN FORUM KURALLARINI OKUYUP, UYUN!!!
Fahrettin abi nerdesin..

tekrarliyorum..

bu isin piri degiliz.
bilen kisilerin bizlere yardim etmesi icin buradayiz.
isi bilsek sizden daha fazla kisilere yardimci olmak isteriz. :idea:
ne arayacagimizi bilmeden N aramamizi bekliyorsunuz.

----------

bu kadar yeter.

eyer yardimci olabileceksiniz lütfen yardimci olun.. :?:

S.A.
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

hocam lütfen gereksiz alınganlık göstermeyin. Gökmen arkadaşımız her zaman yardımcı olmaya çalışmıştır ve forumdaki en kibar yöneticidir.

Zaten size rfunc diye diye aratın diye söylemiş. Bu cümleden ne arayacağınızı çıkaramıyor musunuz? Armut piş ağzıma düş yok!!!

Kolay gelsin.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

pardon ya ben fb tarafı ile delphi tarafının syntax ini karıştırdım sanırım :oops:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kilitli