arama ama 10 field da birden

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Misafir

arama ama 10 field da birden

Mesaj gönderen Misafir »

Sadece 1 Edit kutusuna girilen veriyi like ile veya 10 field da birden arayıp kayıda konumlanmam gerekiyor...Normal 1 tanesini yapıyoruz peki iki veya üçüncüsünde mantık nedir teşekkürler veya nasıl yapabilirim...
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

Aralarında And veya Or ifadelerini duruma göre kullanman gerekir..

Kod: Tümünü seç

Örneğin
Select * From TABLO Where ADI='AHMET' OR ADI='ALİ';

veya

Select * From TABLO Where (ADI LIKE  'A%') or  (ADI LIKE 'B%');
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Misafir

selam

Mesaj gönderen Misafir »

simdi duruma göre derken onu anlayamadım yani bi no düşünün bunların hepsi aynı şey demek ama farklı yazılmış şekilleri var ve bunlardan 10 tane aynı table da field olarak var ve bunların hepsi aynı şey demek ama adam belki 1. den belki 10 cudan arayacak ama aynı kayda konumlanması gerekiyor...hangisini kullanmam lazım..
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Re: selam

Mesaj gönderen TRSoft »

Mx500 yazdı:simdi duruma göre derken onu anlayamadım
Duruma göre derken And (ve) , Or (veya) anlamları taşıdığı için öyle dedim.
Ama senin yukarıda yazıdklarından birşey anlamadım :oops:
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Misafir

SELAM

Mesaj gönderen Misafir »

hocam orasını anladım ama düşün ki 10 tane kalem var ve bunların hepsi aynı yola çıkıyor ama sende bu kalemlerin 2 tanesinin adı var sen arattırıyorsun o ikisinden birinden diğer kalemlere ulaşıyorsun...mesela sen bu 10 tane kalemi satıyorsun ama müşteri senden aynı kalemi başka bir no ile istiyor sende bakiyorsun adamın yazdığı noyu bilgilere ulaşıyorsun ama sonuçta 10 tane farklı ama aynı kalemden var ben herhangi birinden ne zaman ararsam arayım aynı bilgiye ulaşmak istiyorum database deki...
Misafir

çok alan da arama

Mesaj gönderen Misafir »

doğru anladıysam

Kod: Tümünü seç

select * from tablon where alan1 = deger or alan2 = deger or alan3 = deger
şeklinde çözebilmen lazım.
Misafir

selam

Mesaj gönderen Misafir »

Kod: Tümünü seç

procedure TSevkiyatgiris.Edit1Change(Sender: TObject);
begin
if edit1.text='' then exit;
s := edit1.Text;
dm.TBLSIPQUERY1.Active := false;
dm.TBLSIPQUERY1.SQL.Clear;
dm.TBLSIPQUERY1.SQL.Add('select * from tblsipatra');
dm.TBLSIPQUERY1.SQL.Add('where "fisno" like ''%' + s + '%''');
dm.TBLSIPDATASOURCE.DataSet := dm.TBLSIPQUERY1;
dm.TBLSIPQUERY1.Active := true;
end;
peki ben yukarıdaki kod ile nasıl kullanıcam hocam bu where leri alt alta yazacakmıyız direk
Konuyu tekrar açıklayım hocam 10 tane wolkswagen araba var :) bunların renkleri farklı mesela ama fiyatları aynı fakat üretim noları farklı ama ben bunları markasına göre gruplandırmışım örneğin demişimki golfler diye bu 10 tane golf arabanın hangi nosundan ararsam arayıp bu arabaların fiyat ile ilgili ortak özelliklerini bulum yani....arabaların noları farkıl mesela 2320320302 ama arabalar aynı ve bunlar tabloda

araba1 araba2 araba3 araba4 araba5 müşteri benden hangi nodan isterse istesin ben arama yaptığım zaman bu 10 tanesinden bir tanesinden varsa aynı bilgilere ulaşmam gerekiyor...umarım anlatabilmişimdir.
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

Kod: Tümünü seç

     Query1.SQL.Text:='Select * From RUHSAT Where (MARKASI LIKE '+QuotedStr(parametre)+') or (MARKASI LIKE '+QuotedStr('%'+parametre1+'%')+')';
istediğin işlemi yukardaki kottan örnek alarak yapabilirsin..
Buradaki parametre ve parametre1 dışarıdan göndermiş olduğun stringler..
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Misafir

ya bi yanlış anlama var

Mesaj gönderen Misafir »

trsoft hocam gelen parametre değişmiyor aynı parametre farklı alanlarda aranacak sanırım bu durumda ya bi döngü kurup alanları tek tek aratmak gerekiyor ya da az önceki yazdığım gibi bi sorgu ile.

mx500 tablodan bi kaç kayıt yazarsan belki daha net bir çözüm söyleyebiliriz.
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

Farkeden bir şey yok yukarıdaki yapıyı tek parametre ve birçok alan için kullanabilirsiniz
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Misafir

eh haklısın tabi

Mesaj gönderen Misafir »

yani dediklerimiz aynı yere varıyor. ya bu kadar da zor olmasa gerek mx hocam yapar bunu yani. ben inanıyorum.
Misafir

selam

Mesaj gönderen Misafir »

Hocam bu kodu oluşturdum ama bir hareket yok hata da vermiyor olmad ıyani....

Kod: Tümünü seç

procedure TForm3.cxTextEdit3PropertiesChange(Sender: TObject);
begin
if cxTextEdit3.text='' then exit;
s := cxTextEdit3.Text;
dm.IBQuery2.Active := false;
dm.IBQuery2.SQL.Clear;
dm.IBQuery2.SQL.Text:='Select * From NUMUNEDATA Where (OEM_NO LIKE '+QuotedStr(cxTextEdit3.Text)+') or (OEM_NO_1 LIKE '+QuotedStr('%'+cxTextEdit3.Text+'%')+')';
dm.DataSource2.DataSet := dm.IBQuery2;
dm.ibquery2.Active := true;
end;
Misafir

s.a.

Mesaj gönderen Misafir »

Arkadaşlar bu konu hakkında yardımcı olacak bir arkadas yok mu ?
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
vt yapın nasıl bilmiyorum ama madem arabaların fiyatları aynı arabaların ortak özellikleri için bir tablo oluştur.
ARABATURLARI
ID
MARKA
MODEL
FIYAT
DİĞER ORTAK ÖZELLİKLERİ

ARABALAR
ID
ARABATURID
GELISTAR
SATIŞTARI
MUSTERI
VS......

sonra aramayı arabalar tablosundan yapacaksın ortak bilgileri de arabaturlari dosyasından join yapacaksın.

Umarım olayı doğru anlamışımdır.
birde aradığın kaydı tek bir alana göre bulabiliyormusun. yani on alana göre arama yapacağım dediğin alanlardan birine göre buldur. sonra ikincisini ekle sıra ile git.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Misafir

selam

Mesaj gönderen Misafir »

aslangeri şimdi olayı tekrar anlatim anlayacağını umarım...

Aynı tablo üzerinde alanlar var alanlar aşağıda ki gibi

sira id net_kodu ay_kodu oem_no oem_no_1 oem_no_2 oem_no_3 oem_no_4

Burada net kodu, ay kodu, oem_no, oem_no_1 ...diğer oemnoların ve bu yazdığım fieldların hepsinin kaydı aynı yani tek bir kaydı temsil ediyorlar.....

net kodundan like ile yukarıda yazdığım gibi arama yaptırıp kayda konumlanabiliyorum...ay kodundan da arattırıp kayda konumlanabiliyorum fakat burada bir parçanın 15 adet farklı oem nosu olabiliyor...Yani bana herhangi bir oem nosu ile gelebildiği için ben kaydı yaparken bütün oemnoları giriyorum...ama arama yapmam lazım nasıl mı Tüm oem noları arasın eğer herhangi birinde benim yazdığım oem no varsa o kayda konumlanması gerek işte bu örneğin 15 adet oem nosu alanını editte arattırıp nasıl kayda konumlanabileceğim veya yoksa böyle bir kayıt yok olayı...Teşekkürler

Umarım anlatabilmişimdir...
Cevapla