Arama için kullanılacak verileri nasıl girmeliyim

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
zaxacm
Üye
Mesajlar: 129
Kayıt: 05 Ara 2005 05:48

Arama için kullanılacak verileri nasıl girmeliyim

Mesaj gönderen zaxacm »

bir kayıt girerken o kişinin çalışabileceği ilçeleri kayıt etmem lazım ki daha sonra arama yaparken mesela kadıköy,göztepe,ümraniye ve maltepede çalışabileceğini söyleyen kişileri bulmam lazım.Kişiyi kayıt ederken çalışabileceği ilçeleri nasıl kayıt etmeliyiz veritabanına.Mesela bir edit nesnesi koyup buraya mı ilçe isimlerini yazıp kayıt etmeliyiz nasıl bir mantık kullanabiliriz acaba fikirlerinizi bekliyorum
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

çalışılabilecek ilçeler kısıtlı ise dbcombobox kullan ve items özelliğini açarak ilçe adlarını büyük harf ile yaz.yok türkiyedeki her ilçede çalışabilir ise ilçe adlarının tutulduğu bir tablo yap kullanıçı çalışacağı ilçe listede yoksa önce yeni ilçe girebilsin.bunuda kişi kayıt ederken ilçe kısmında dblookupcombobox kullanarak yaparsın.kolay gelsin

[EDİT] kardeş sorunu yanlış anladım galiba 1 kişi birden fazla ilçede çalışabilir sanırım bunu nasıl yaparım diyorsun.Bunuda master/detail tabloyla yaparsın.

KİŞİ TABLOSU
PERSONELKODU
PERSONELADI
TELEFONU
V.S

İLÇELER TABLOSU
PERSONELKODU
ŞEHİRADI(OPSİYONEL)
İLÇEADI

şeklinde olur kişi tablosu ile ilçeler tablosu personelkodu alanı ile birbirine bağlanır.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Adres bilgilerini girerken IL_ILCE_KODU diye integer bir alana IL_ILCE_TABLOSU nu bağlayabilirsin.

KİŞİ TABLOSU
PERSONELKODU
PERSONELADI
TELEFONU
ADRES1
ADRES2
IL_ILCE_KODU INTEGER
V.S

IL_ILCE_TABLOSU
IL_ILCE_KODU INTEGER
IL_ILCE_ADI STRING(20)

0100 ADANA
0101 Ceyhan
0102 Yumurtalık
0103 ....
...
3400 İSTANBUL
3401 Adalar
3402 Kadıköy
3403...
3425 Ümraniye
vb.
Bu şekildeki bir yapı ile tek bir alanı seçerek kolayca arama yapabilirsin.

İlleri ayrı tabloda İlçeleri ayrı bir detay tabloda da verebilirsin. Bu sefer fazladan bir JOIN daha kullanman gerekecek iş biraz daha uzayacaktır :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
zaxacm
Üye
Mesajlar: 129
Kayıt: 05 Ara 2005 05:48

Mesaj gönderen zaxacm »

herkese iyi çalışmalar diliyorum.
Ben bu olayı sadece istanbul için yapacağım yani sadece istanbulun ilçeleri olacak.İlçe sayısı yarın öbürgün artabilir o yüzden edit kutusuna aralarına virgül koyarak çalışmak istediği ilçeleri yazıp kaydedicem.

KISI TABLOSU
kisi_id
ad
soyad
ilceler

Veritabanını böyle düzenledim.KISI tablosuna Kişinin adını soyadını ve ılceler alanına da çalışmak istediği ilceleri aralarına virgül koyarak kaydediyorum.Örneğin

id:125
adı:ahmet
soyadı:sertkaya
ilceler:kartal,göztepe,bostancı,kadıköy

Her kayıdı böyle yaptım.Daha sonra arama yapmak istedim mesela kartal ve göztepede çalışabilirim diyenleri bulmak için nasıl bir sql kodu yazabilirim?.Burada ilçeleri aralarına virgül koyarak tek bir alanda ardarda yazmam sorun olur mu?
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

olur olmasınada zor olur.kulağı tersden göstermişsin.Forumda geçmişti ama bende bulamadım.örneğin googdaki gibi borlan delphi yazdığında içinde hem borland hem delphi yazanları bulur veya sadece borland delphi yazanlarıda aratabilirsin.neyse 2 dk.da süreceğin işi 2 güne çıkarmışın ama çözerler forumdaki arkadaşlar.
danaci
Üye
Mesajlar: 178
Kayıt: 24 May 2005 01:45

Mesaj gönderen danaci »

en güzeli çalışılacak ilçeleri ilçeler table ında ayrıca tutmak ama yinede metin olarak bir field da tutmak istersen
sql ile arama yaparken like 'a vereceğin parametreyi %edit1.text% yaparak aratabilirsin

select * from kisiler where ilceler like %edit1.text% şeklinde uyarlamalısın
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

danaci arkadaşımızın dediği gibide olur ama veri bütünlüğü olması lazım.mesela kayıt yaparken kartal,göztepe girmiş ise sen aratırken göztepe,kartal diye aratırsan kaydı bulamaz.
zaxacm
Üye
Mesajlar: 129
Kayıt: 05 Ara 2005 05:48

Mesaj gönderen zaxacm »

iyice zorlaştı ya ben kolay bişeydir diye düşünürken..
zaxacm
Üye
Mesajlar: 129
Kayıt: 05 Ara 2005 05:48

Mesaj gönderen zaxacm »

accessdeki alanlar
ad,soyad,ilce1,ilce2,ilce3,ilce4 şeklinde
örneğin
ali bilmemne kartal pendik kadıköy maltepe
veli bilmemne kadıköy göztepe tuzla pendik

şeklinde şimdi nasıl bir sql kodu yazayımki ilçe tercihi olarak kadıköy yazanları bulsun.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

İlçe adlarını yanyana toplatıp LIKE veya CONTAINING komutu ile buldurabilirsin.

Kod: Tümünü seç

select * from tablo_adi
where ilce1||','||ilce2||','||ilce3||','||ilce4 containing 'KADIKÖY'
Buradaki 'KADIKÖY' yerine :ILCE_ADI diye parametrik kullanmak daha kullanışlı olabilir. Veya sorguyu her seferinde kendin oluşturursan bu şekilde de kalabilir :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
zaxacm
Üye
Mesajlar: 129
Kayıt: 05 Ara 2005 05:48

Mesaj gönderen zaxacm »

burada kadıköy yerine edit icin kodu nasıl değiştirmemiz lazım
Cevapla