arama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
arama
arkadaşlar bana tabloda arama için yardım gerekiyor
benim kullandığım kod aşağıdaki gibi.
istediğim şey ise mesela yüzlerce kayıt var isme göre arama yapmak istiyorum.ama mesela ismi tam hatırlamıyorum ve sadece edit1.text'e yazdığım kayıda yakın kayıtların listelenmesini istiyorum.örnek olarak kayıtlı mehtap,mehpare,mehmet gibi kayıtlar var diyelim.edit1.text'e 'Me' yazınca me ile başlayan tüm kayıtların listelenmesini istiyorum.eğer yoksa veya yanlış girilmişse bir mesaj vermesini istiyorum.
aşağıdaki kod bunun için yeterli değil yardım ederseniz sevinirim.
teşekkür ederim.
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from sirket where Sirket_ismi like "'+Edit1.Text+'%"');
query1.Open;
benim kullandığım kod aşağıdaki gibi.
istediğim şey ise mesela yüzlerce kayıt var isme göre arama yapmak istiyorum.ama mesela ismi tam hatırlamıyorum ve sadece edit1.text'e yazdığım kayıda yakın kayıtların listelenmesini istiyorum.örnek olarak kayıtlı mehtap,mehpare,mehmet gibi kayıtlar var diyelim.edit1.text'e 'Me' yazınca me ile başlayan tüm kayıtların listelenmesini istiyorum.eğer yoksa veya yanlış girilmişse bir mesaj vermesini istiyorum.
aşağıdaki kod bunun için yeterli değil yardım ederseniz sevinirim.
teşekkür ederim.
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from sirket where Sirket_ismi like "'+Edit1.Text+'%"');
query1.Open;
Kod: Tümünü seç
if Query1.RecordCount = 0 then
ShowMessage(Edit1.Text + ' ile başlayan kayıt bulunamadı!');
arama
tamam eğer kayıt yoksa mesaj veriyor.aramada yapıyor fakat her listeyi açtığımda ilk kaydı gösteriyor benim arattırdığım kayıtları göstermiyor ben sadece benim arattırdığım kayda yakın olan kayıtların görünmesini istiyorum ama bu şekilde tüm kayıtları gösteriyor.lütfen yardım edin.
Şimdi sen her arama formunu açtığımda bir önceki arama sonuçları kaldığı yerden gözüksün mü istiyorsun.. Benim anlayabildiğim bu..
O zaman arama formunu açtığında bir önceki sorgulamayı tekrar çalıştır..
Yoksa en son arama formunu kapatırken editın içinde ne yazıyordu onumu bulamıyorsun anlayamadım galiba sorunu...
O zaman arama formunu açtığında bir önceki sorgulamayı tekrar çalıştır..
Yoksa en son arama formunu kapatırken editın içinde ne yazıyordu onumu bulamıyorsun anlayamadım galiba sorunu...

İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
arama
sorun şu ben arama yapmak istiyorum.3 tane formum var birinde kayıt girişi birinde liste birindede arama.mesela yüzlerce kayıt var ve ben aramak istedğim kaydı bulmak için (mesela ahmet isimli kaydı arıyorum)
edit1.text'e ahm veya ah yazınca bu şekilde başlayan tüm kayıtların liste formundaki dbdgrid üzerinde listelenmesini istiyorum.eğer kayıt yoksa veya yanlış yazılmışsa bir mesaj verip kayıt yoktur demesini istiyorum.umarım bu sefer daha anlaşılır olmuştur.teşekkür ederim.
edit1.text'e ahm veya ah yazınca bu şekilde başlayan tüm kayıtların liste formundaki dbdgrid üzerinde listelenmesini istiyorum.eğer kayıt yoksa veya yanlış yazılmışsa bir mesaj verip kayıt yoktur demesini istiyorum.umarım bu sefer daha anlaşılır olmuştur.teşekkür ederim.
Aslında veritabanına göre değişik yöntemler uygulanabilir. Böyle bir durumda arama formunda uyguladığın sorguyu liste formundaki dbgridin bağlı olduğu querye uygularsan olur.. Ancak dbgride query değilde table bapladıysan (kesinlikle tavsiye etmem) table filter özelliğinde yararlanabilirsin ancak filter çok yavaş olacaktır..
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
kod da bi sorun gözükmüyor, edit1 in onchange olayına yazdığında sorun olmamalı ben genelde sql.clear yapmadan kodu query nin string alanına yazıp kod ortamından sadece parametre göndermeyi tercih ediyorum.
arama yapmak için edit1, listeyi görmek için DbGrid kullanıp query i dbgride bağladığımda sıorun çıkmıyor
ayrıca sorguladığın database nedir?
çünkü kodda "'+Edit1.Text+'%"
" var ben sql server da denedim '' olmalı yani çift tırnak değil iki tane tek tırnak olmalı.
kodu
query1.SQL.Add('select * from Firma_Fiyat where Firma like '+#39+Edit1.Text+'%'+#39);
şeklinde yazdım sorunsuz çalışıyor
arama yapmak için edit1, listeyi görmek için DbGrid kullanıp query i dbgride bağladığımda sıorun çıkmıyor
ayrıca sorguladığın database nedir?
çünkü kodda "'+Edit1.Text+'%"
" var ben sql server da denedim '' olmalı yani çift tırnak değil iki tane tek tırnak olmalı.
kodu
query1.SQL.Add('select * from Firma_Fiyat where Firma like '+#39+Edit1.Text+'%'+#39);
şeklinde yazdım sorunsuz çalışıyor
Arkadaşım kodun dogru fakat diğer arkadasların dediği gibi veri tabanında önemli bu konuda sana çalışan bir kod örneğini sunuyorum inşallah işişni görür..
Kolay Gelsin
Kod: Tümünü seç
If Edit1.Text<>'' Then
Begin
Query1.Close;
Query1.Sql.Text:='select * from tabloismi Where değişkenin like "'+Edit1.Text+'%"';
Query1.Open;
DBGrid1.DataSource:=DataSource1;
End Else
Begin
Query1.Close;
Query1.Sql.Text:='select * from tabloismi';
Query1.Open;
DBGrid1.DataSource:=Datasource1;
End;
Merhaba arkadaşlar binimde bi sorum olucaktı
query ile diğer sorguları yapabiliyorum yani tablonun belirli alanlarındaki kayıtları edite girdiğim kriter uygunsa bularak dbgride dökülüyor.
yapmak istediğim edite bir kriter gireceğim ve bu girilen kriteri tüm tablonun içinde arayacak yani belirli bir alan yok tüm tablo içinde arayarak varsa uyan kayıt bulup gösterecek.
burada editleri iki tane düşünüyorum. adı ve soyadı için. yaptığım çalışmada kişilerin ikinci üçüncü dördüncü ad ve soyadları var bunların tabloda ayrı ayrı alanları oluşturuldu. adı, soyadı, adı1, soyadı1.... şeklinde gidiyor. burada aramayı tablo ya yayarak kayıt bulmak istiyorum. diğer türlü biraz güzel olmayan bi sorgu formu oluşmuş olacak ve kişiye peşi sıra ad soyad ların olduğu alanlar kadar sorgu yaptırılacak.
tabolm dbaseIV ile hazırlanmış durumda ve delphi7 kullanıyorum.
teşekkür ve saygılarla.
query ile diğer sorguları yapabiliyorum yani tablonun belirli alanlarındaki kayıtları edite girdiğim kriter uygunsa bularak dbgride dökülüyor.
yapmak istediğim edite bir kriter gireceğim ve bu girilen kriteri tüm tablonun içinde arayacak yani belirli bir alan yok tüm tablo içinde arayarak varsa uyan kayıt bulup gösterecek.
burada editleri iki tane düşünüyorum. adı ve soyadı için. yaptığım çalışmada kişilerin ikinci üçüncü dördüncü ad ve soyadları var bunların tabloda ayrı ayrı alanları oluşturuldu. adı, soyadı, adı1, soyadı1.... şeklinde gidiyor. burada aramayı tablo ya yayarak kayıt bulmak istiyorum. diğer türlü biraz güzel olmayan bi sorgu formu oluşmuş olacak ve kişiye peşi sıra ad soyad ların olduğu alanlar kadar sorgu yaptırılacak.
tabolm dbaseIV ile hazırlanmış durumda ve delphi7 kullanıyorum.
teşekkür ve saygılarla.
viewtopic.php?t=1298&highlight=edit+sql
viewtopic.php?t=1471&highlight=edit+sql
viewtopic.php?t=1363&highlight=edit+sql
viewtopic.php?t=1318&highlight=edit+sql
Arama yapsaydınız sorunuza daha kısa zamanda yanıt bulabilirdiniz.
Kolay Gelsin...
viewtopic.php?t=1471&highlight=edit+sql
viewtopic.php?t=1363&highlight=edit+sql
viewtopic.php?t=1318&highlight=edit+sql
Arama yapsaydınız sorunuza daha kısa zamanda yanıt bulabilirdiniz.

Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Hüseyin abi seni bu zahmete soktuğum için çok üzgünüm ve yardımların içinde çok teşekkür ederim.
Aramalarımda ve sizin belirttiğiniz sayfalarda hep belirli field lerde arama yapılıyor. Biz se tek bir edit girerek tüm tablo içinde aramasını istiyoruz. yani sorguda belirli bir alan yok tüm tablo var. verdiğin adreslerden
yukarıda geçilen kodu kallanmayı düşünüyorum. Yani sorgu içindeki paramlara ve alan adlarına tablom kadar gireceğim ve edit bitane olacak
acaba doğru yapmış olurmuyum.
teşekkür ve saygılar.
Aramalarımda ve sizin belirttiğiniz sayfalarda hep belirli field lerde arama yapılıyor. Biz se tek bir edit girerek tüm tablo içinde aramasını istiyoruz. yani sorguda belirli bir alan yok tüm tablo var. verdiğin adreslerden
Kod: Tümünü seç
procedure TForm1.Edit1Change(Sender: TObject);
begin
SorguYap(Edit1.Text, Edit2.Text);
end;
procedure TForm1.Edit2Change(Sender: TObject);
begin
SorguYap(Edit1.Text, Edit2.Text);
end;
Procedure TForm1.SorguYap(Edit1, Edit2 : String);
begin
// İlk olarak başında ve sonundaki boşluklar temizlensin.
Edit1 := Trim(Edit1);
Edit2 := Trim(Edit2);
With Query1 do
begin
Active := False;
SQL.Clear;
SQL.Add('Select * from giris');
If (Edit1 <> '') OR (Edit2 <> '') then
begin // Editler boş ise tüm liste gelir, herhangi biri dolu ise
If (Edit1 <> '') AND (Edit2 <> '') then
SQL.Add('where ((LOWER(Oda) Like LOWER(:param1)) or (LOWER(AdiSoyadi) Like LOWER(:param2)))' )
else If Edit1 <> '' then SQL.Add('where (LOWER(Oda) Like LOWER(:param1))')
else If Edit2 <> '' then SQL.Add('where (LOWER(Oda) Like LOWER(:param2))');
end; // If editlerden en az birisi dolu ise...
If Edit1 <> '' then
Params.ParamByName('param1').AsString:='%'+Edit1+'%';
If Edit2 <> '' then
Params.ParamByName('param2').AsString:='%'+Edit2+'%';
Active := True;
end; // With
end;
acaba doğru yapmış olurmuyum.
teşekkür ve saygılar.
Bahsettiğin şeyi bir çok yöntemle yapabilirsin. Yukarıda ki kodu incelemeden fikir vermek istiyorum birincisi kod yazarken illaki kodunun başka kodlara benzemesi gerekmez ve bir olayı bir çok kod yazımıyla yapabilirsin.
1.nci bir anda bütün fieldları aramak istiyorsan önerim Sql dizisinde whereden sonra yakalamak istediğin verilerde fieldlar arasında or parametresi kullanabilirsin.
2.nci yöntem sorguyu tek field'a göderirsin kayıt olup olmadığını kontrol edip ikinci field ı sorgularsın.
Kolay Gelsin...
1.nci bir anda bütün fieldları aramak istiyorsan önerim Sql dizisinde whereden sonra yakalamak istediğin verilerde fieldlar arasında or parametresi kullanabilirsin.
2.nci yöntem sorguyu tek field'a göderirsin kayıt olup olmadığını kontrol edip ikinci field ı sorgularsın.
Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Hüseyin abi rahatsız ediyorum,
OR kullanarak şu şekil bi kod yazdım (acizane);
burada run deyince çalışıyor fakat edit8 e bir isim girince hata veriyor ve run durduruluyor tekrar run diyince TOKEN:OR hatısını veriyor. AND Olarak değiştiriyorum yine TOKEN:AND hatasını veriyor. büyük ihtimal hata bizde acaba nerde?

OR kullanarak şu şekil bi kod yazdım (acizane);
Kod: Tümünü seç
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select*from Arsiv');
query1.SQL.Add('where ((ADI) OR (SOYADI) OR (BABA_ADI)) LIKE :Param1');
query1.ParamByName('Param1').AsString :=edit8.text;
query1.Open;

