Ad Soyad parçalamak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
turkcanfidan
Üye
Mesajlar: 380
Kayıt: 31 Eki 2005 03:26

Mesaj gönderen turkcanfidan »

Aslında sorun şu;
adı, soyadı, eskisoyadı gibi alanları ayrı tutmak gerekiyor. Ama çok hızlı kayıt girişi yapılan yerlerde bu tip bilgi girişi işi yavaşlatıyor. Veritabanında ADISOYADI gibi birleşik tutanlar bu sql koduyla farklı raporlar (mesela soyadına göre alfabetik sıralı) alabilir.

kolay gelsin.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Yanlış anlamamışımdır umarım :)

Bilenler bilir PHP'de güzel bir explode function'u vardır. Verdiğiniz string ifadeyi, belirlediğiniz karaktere göre parçalayıp geri döndürür.

Ali Veli Kırkdokuz elli

ifadesini

Ali
Veli
Kırkdokuz
elli

olarak ayırabilir.

Kodu burada bulabilirsiniz.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

mkysoft yazdı:neden bu işlemi veri tabanına yaptır mıyorsunuz? Veriler gelirken düzgün olarak gelsin.

Kod: Tümünü seç

select concat(copy(AdiSoyadi,pos(' ',AdiSoyadi)+1,len(AdiSoyadi-pos(' ',AdiSoyadi))),copy(AdiSoyadi,1
,pos(' ',AdiSoyadi)-1)) as SoyadiAdi from tablom
Artık birden fazla soyisim kullanma hakkı çıktı biliyorsunuz (bayanlar için). Bu durumda ayırmak çok daha zor olacaktır.
sanırım bu aşamda da adsoyad içerisindeki boşluk sayısına bakmak gerekecek dört ise çift soyadlı ve çift adlı biri demek olur
...
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

artık sql yerine bir procedure yazmak yerinde olur.
turkcanfidan
Üye
Mesajlar: 380
Kayıt: 31 Eki 2005 03:26

Mesaj gönderen turkcanfidan »

konuyu delphi tarafında çözünce CalculatedField olarak tanımlıyorsun ve raporda Soyadına göre sıralama yapılamıyor. SQL ile çözünce Order by Soyad deyip çok daha rahat oluyor. Hatta DB de ADISOYADI gibi bitişik bir bilgiyi Query de SOYADI, ADI olarak iki ayrı sütun olarak da getirebiliriz.
Kullanıcı avatarı
Murat DİCLE
Kıdemli Üye
Mesajlar: 702
Kayıt: 19 Nis 2006 04:12
Konum: İstanbul
İletişim:

Mesaj gönderen Murat DİCLE »

Her nekadar da ikinci soyismi kullanan çok az da olsa, böyle bir ihtimali düşünmek elbette doğru olacaktır.

Tabi ortada, iki ismi olupta birde buna ilaveten ikinci soyismini alanlarda olacaktır.

Bunun üstesinden gelmek için farklı düşünceler olabilir.

Mesela şöyle ikinci soyismi olanlar için bir akıl yürütelim.

M. Fatma Dağkuşu Çimen: Bu örnekte M. Fatma bir isim, Dağkuşu ikinci soy isim Çimen ise soyisimdir. Benim fikrime göre bunu şu şekilde kaydetmek gerekir. ilk isim (M.) ikinci isim (Fatma Dağkuşu) soyisim (Çimen)

Bu örnek gerçekten bu kaydı giren için panik yaptıracak derecede bir isimdir. Çünkü ilgili kişi Fatma adını kullanıyor. Ama ilk adını göbek adıymış gibi sadece (M.) olarak göstriyor. Şahsen bende böyle gösteriyorum (M. Murat Dicle). Şimdi bu nokada bilgi girişi yapan kişiler (M.) gibi bir ifadeyi es geçmeleri doğru olabilir. Kayıtların sağlığı ve aramalarda kolay bulunmaları açısından. Ama bir yandan da tam kimlik bilgisi elde etmekte önemlidir.

Meryem Fatma Dağkuşu Çimen: Evet bu şekilde girilmesi mecbur tutulabilir. Bu durumda Göbek adı ve ikinci soy ismi ORTA AD olarak kaydetmek ya da algılamak mümküm. Ama raporlarda bana ikinci soyismi olanları dök denildiğinde bir netice çıkmayacaktır.

Bu durumda en bilimsel yaklaşım her hane için ayrı bir field açmaktır. Ama bunu giriş esnasında tek editbox ile yapılabilir.

Ben böyle şeyleri göz önüne alarak genelde, soyisimleri ayırmanın kolay olduğunu ama diğer adlarda karışıklı olcağını düşünerek. Arama için ADSOYAD filed'ı içinde aranan text'e bakarım. Ve öyle SQL'i dökerim. Tabi bu yaptığınız uygulamaya göre değişir. Uygulamada ikinci soyisim önemli bir alan ise mutlaka bunu ayrı girmek iyi olacaktır.

Delphi olarak ya da başka bir şekilde girilen TEXT'i bir şekilde parçalara ayırmak kolay olacak ama bu mantığı her uygulamya koymak doğru olur mu bilmiyorum. Bana göre, sizin tam olarak neye ihtiyacınız ve bu ihtiyacın bir mecburiyet mi olduğuna karar vermenizdir.

Son bir fikir ise, Nufus cüzdanında ikinci soyisimler nasıl belirtiliyor öğrenmek lazım. hiç görmedim. Eğer orada nasıl belirtiliyorsa sizde o şekilde bir mantık kullanabilirsiniz.
Cevapla