Gönderen Konu: SQL ile Birden Çok Alana Göre Arama Yapmak  (Okunma sayısı 1144 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

maximus51

  • Üye
  • ***
  • Rep: +0/-0
  • Çevrimdışı Çevrimdışı
  • İleti: 36
SQL ile Birden Çok Alana Göre Arama Yapmak
« : 23 Eylül 2007 10:55:48 »

merhaba Arkadaşlar Formda arama yaptım ama Bulamadım.
Sorum Åžu Åžekilde

KiÅŸiler  Adında Bir Tablom var Tablodaki Alanlar (TC,AD,SOYAD,BABAAD,ANNEAD,vs....) Bu ÅŸekilde Ben Arama Yaparken Åžu Åžekilde Arama Yapsın Forma  5 Tane Edit Ekledim.
Edit1.Text:=Tc ' De Arama Yapacak
Edit2.Text:=Ad ' Da Arama Yapacak
Edit3.Text:=Soyad ' Arama Yapacak
Edit4.Text:=BabaAD ' Arama Yapacak
Edit5.Text:=Anne Ad ' Arama Yapacak


Yukarıdaki Kriterlerden herhangi birini girince ona uygun Akyıt gelsin ...
Yani Edit4 ' e Baba Adı  HÜSEYİN   Yazınca Baba Adı Hüseyin Olanlar
Edit1  Tc Numarası yazınca O Kimlik Numarası olan kayıt.

Button tıklayınca   sql İle  yukarıdaki kriterlerden Hangisi Dolu ise onu sorgulayacak 
Kayıtlı

deltas

  • Üye
  • ***
  • Rep: +0/-0
  • Çevrimdışı Çevrimdışı
  • İleti: 37
Ynt: SQL ile Birden Çok Alana Göre Arama Yapmak
« Yanıtla #1 : 23 Eylül 2007 14:38:06 »

procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.Text <>'' then
begin
kodlar ...... 
select * from kisiler where tc:='edit1.text'
end;

if edit2.Text <>'' then
begin
kodlar ...... 
select * from kisiler where ad:='edit2.text'
end;

if edit3.Text <>'' then
begin
kodlar ...... 
select * from kisiler where tc:='edit3.text'
end;

end;

end.

ancak bunu yatığında diğer edilerin boş olmasına dikkat et. bunun içinde bilgi girişi yaptıktan sonra bilgi girişi yaptığın edit'in onexit olayına diğer editleri boşaltıp değiştirilme özelliklerini enabled=false edecek şekilde kod yaz. Ve sorgu işlemi bittikten sonra tum editlerin enabled=true olsun. bu şekilde bi kontrol mekanızmasıda yaparsa daha sağlam olurç
Kayıtlı

akrep

  • Global Moderatör
  • *****
  • Rep: +27/-13
  • Çevrimdışı Çevrimdışı
  • Cinsiyet: Bay
  • İleti: 1.241
Ynt: SQL ile Birden Çok Alana Göre Arama Yapmak
« Yanıtla #2 : 23 Eylül 2007 18:27:35 »

Kod: (delphi) [Seç]
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select ADI,SOYADI,TARİH from TABLOM');
Query1.SQL.Add('Where ADI like :adi and');
Query1.SQL.Add('SOYADI like :soyadi and');
Query1.SQL.Add('TARİH like :tarih');

if edit1.text = '' then query1.ParamByName('adi').AsString:='%' else query1.ParamByName('adi').AsString:=edit1.Text;
if edit2.Text = '' then query1.ParamByName('soyadi').AsString:='%' else query1.ParamByName('soyadi').AsString:=edit2.Text;
if edit3.Text = '' then query1.ParamByName('tarih').AsString:='%' else query1.ParamByName('tarih').AsString:=edit3.Text;

query1.Prepare;
query1.open;
end;

Kodları kendine uyarlayabilirsin, hangi edit'e yazarsan ona göre sorgular, yada istersen hepsini doldur farketmez. Ayrıca edit içerisinde "%" işareti kullanırsan bu "herhangi sayıda, herhangi bir karakter", "_" işareti kullanırsan "tek bir tane ve herhangi bir karakter" anlamına gelir. Ben paradoks veritabanında kullanmak üzere yazmıştım.
« Son Düzenleme: 23 Eylül 2007 22:08:06 Gönderen: Akrep »
Kayıtlı
Tomurcuk derdinde olmayan ağaç, odundur - Necip Fazıl Kısakürek

maximus51

  • Üye
  • ***
  • Rep: +0/-0
  • Çevrimdışı Çevrimdışı
  • İleti: 36
Ynt: SQL ile Birden Çok Alana Göre Arama Yapmak
« Yanıtla #3 : 23 Eylül 2007 18:32:52 »

Çok TeÅŸekkür Ederim kardeÅŸim Çok İşime Yaradı  Biraz DeÄŸiÅŸiklik yaptım Åžu Åžekilde yaptım
Ama İlgin Alakan ve Kodkarın İçin Çokkkkk Teşekkür ederim.




procedure TForm1.JvXPButton1Click(Sender: TObject);

begin
if edit1.Text <>'' then
begin
SORGU.SQL.Clear;
SORGU.SQL.Add('SELECT * from KISILER where TC=:A');
Sorgu.Parameters[0].Value:=Edit1.Text;
SORGU.Open;

  end;
if edit2.Text <>'' then
begin
Sorgu.SQL.Clear;
SORGU.SQL.Add('SELECT * from KISILER where AD=:B');
Sorgu.Parameters[0].Value:=Edit2.Text;
Sorgu.Open;
end;
if edit3.Text <>'' then
begin
Sorgu.SQL.Clear;
SORGU.SQL.Add('SELECT * from KISILER where SOYAD=:C');
Sorgu.Parameters[0].Value:=Edit3.Text;
 Sorgu.Open;
Kayıtlı

maximus51

  • Üye
  • ***
  • Rep: +0/-0
  • Çevrimdışı Çevrimdışı
  • İleti: 36
Ynt: SQL ile Birden Çok Alana Göre Arama Yapmak
« Yanıtla #4 : 23 Eylül 2007 18:34:36 »

Akrep TeÅŸekkürler Ama biraz Geç kaldın YaÅŸlanıyorsun Sanırım  ::P
Kayıtlı

akrep

  • Global Moderatör
  • *****
  • Rep: +27/-13
  • Çevrimdışı Çevrimdışı
  • Cinsiyet: Bay
  • İleti: 1.241
Ynt: SQL ile Birden Çok Alana Göre Arama Yapmak
« Yanıtla #5 : 23 Eylül 2007 19:38:38 »

Akrep TeÅŸekkürler Ama biraz Geç kaldın YaÅŸlanıyorsun Sanırım  ::P
Doğru söylüyorsun, artık çekilelim de gençlere biraz yol verelim bari :::) Eskiden 10 saniyede 5 mesaj yazarıdım...
Kayıtlı
Tomurcuk derdinde olmayan ağaç, odundur - Necip Fazıl Kısakürek

maximus51

  • Üye
  • ***
  • Rep: +0/-0
  • Çevrimdışı Çevrimdışı
  • İleti: 36
Ynt: SQL ile Birden Çok Alana Göre Arama Yapmak
« Yanıtla #6 : 23 Eylül 2007 20:36:12 »

Sen Bize Lazımsın Allah başımızdan eksik etmesin Sizin gibi Değerli Ustaları
Kayıtlı

akrep

  • Global Moderatör
  • *****
  • Rep: +27/-13
  • Çevrimdışı Çevrimdışı
  • Cinsiyet: Bay
  • İleti: 1.241
Ynt: SQL ile Birden Çok Alana Göre Arama Yapmak
« Yanıtla #7 : 23 Eylül 2007 22:09:53 »

Sen Bize Lazımsın Allah başımızdan eksik etmesin Sizin gibi Değerli Ustaları
Allah razı olsun kardeş ama gerçek ustalara ayıp oluyor :::) Benden ne köy olur ne kasaba (şimdilik hehehe...)
Kayıtlı
Tomurcuk derdinde olmayan ağaç, odundur - Necip Fazıl Kısakürek