Like Komutunu kullanmak

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
AReS
Üye
Mesajlar: 86
Kayıt: 25 Haz 2005 04:58

Like Komutunu kullanmak

Mesaj gönderen AReS »

S.A Sayın hocalarım arkadaşlarım size sormak istediğim bir şeyler var diyeceksiniz ki bunları zaten sordular valla forumda vardır dogrudur ama buna benzer bir şeyi bulamadım. Her neyse Bir takım Sql komutlarını delphi de sorunsuz olarak kullanıyorum şu bulma ve dbgrid e çektirme dışında. Sql komutuyla

Kod: Tümünü seç

Select * from personel where ad like '+'''+Edit1.Text+''%'' 
dedim ve bu olayı Edit1 in onchange olayına yazdım veya Bul die adlandırdıgım bir butonun begin end aralıgına girdim. Komut süper güzel çalışıyo (Showmessage la komutu kontrol ettirdim )ama bir türlü dbgrid e getirmiyo. Hocam yaptıklarım da bir terslik mi var yardımcı olursanız sevinirim.(Kullandıgım normal dbgrid AdoConnection AdoDataset ve Adoquery kullanarak bunları yapmaya çalışıyorum)Yapamadıgım ne nerde yanlış yapıyorum valla kusura bakmayı bunları yazdım çünkü tam 1 aydır formdaki ornekler ve kodlarla ve açıklamalar la bu işi yapmaya çalıştım ama bir trürlü bu search olayını başaramadım locate le oluyo ama ben bunu sql le yapmak istiyorum.Yardımlarınız ve kızgınlıklarıız için teşekkürler. :)
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Seninde belirtiğinb gibi bu konu forumda onlarca var. :idea:

ama yinede cevaplandıralım. :)

Aslında buraya kod dışında showmessage ile ne msj aldığını yazsaydın kesin cevap olurdu.

ama senin kodundaki hata

Kod: Tümünü seç


Select * from personel where ad like '+'''+Edit1.Text+''%''  
yerine

Kod: Tümünü seç

Select * from personel where ad like '''+Edit1.Text+''%''
 
böyle yaparsan sonu çözelmüş olacak.

seninde belirtiğin gibi showmessage ile Sql cümlesine bak muhakki hata vardır ve gözünden kaçmıştır.

Saygılarımla
Çalışmalarınızda başarılar.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
AReS
Üye
Mesajlar: 86
Kayıt: 25 Haz 2005 04:58

Mesaj gönderen AReS »

Hocam pardon sorun o değil haklısın kodu yazarken hızlı hızlı elle yeniden yazdım cop paste deil tüm komudu yazayım showmessage la komutu goruyorum komut çalışıyo ama neden aktif olan kayda gidemiyorum veya soruladıgım kaydı bir gridde (Bağlantısı kesik komutla baglanan ) göremiyorum gride niye ak taramıyorum :duvar: hocam valla artık bi şarkıcı vardı ben aptalmıyım diyip duruyodu ben artık oyle demeye başlıcam

Kod: Tümünü seç

begin
With Query1 do
   begin
      close;
      SQL.Clear;
      SQL.Add('select * from Personel where Ad='''+Edit1.Text+''' ');
      oPEN;
   end;
end;
veyahut like yapayım anlatmak istediğim komut çalışmıyo değil komut çalışıyor.Tamam ama anlatmak istediğim formda bir çok kişinin sordugu aynı şey aktif olan kayıt(sorgulanan)neden dbgrid e gelmiyo veya aktif olarak işaretlemiyo. İnşallah anlatabilmişimdir.
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

merhaba yapmaya çalıştığın tam nedir biraz açarsan. belki yardımcı olabilriz. bende aynı işlemi yapıyorum. stok hareketlerine stok kartından bilgi aktarıyorum hiçbir problem yok. DBGrid listelenirken bulunan kayıtlar 1 den fazla ise aktif kayıt 1. kayıttır. sen yazmaya devam edersen aktif kayda direk ulaşırsın veya arama yaptığın editin onkeypress olayına yukarı ok tuşunu atayıp DBGrid içerisine dahil olabilirsin sonrası kaydı aktifleştirip DBGridin onkeypress olayına veya onclick veya ondoubleclick olaylarına kodunu yazabilirsin. kolay gelsin.....
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Kullanıcı avatarı
miskin
Üye
Mesajlar: 103
Kayıt: 26 Tem 2005 02:02
Konum: Gavuristan

Mesaj gönderen miskin »

Edit1.Text'e program calisirken verecegin degeri Code'un icinde yaz ver hala calismiyorsa. Hata stringde veya komutta degildir.
Kesin bilmemekle beraber bir yerlerde (Grid) refresh yapman gerekli olabilir

miskin
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

Select ... Like komutu kritere uyan kayıtları getirir aktif kayıt falan filan soz konusu degildir. eger kriter sonucu bir kayıt gelirse bu aktif kayıt olmus oluyor.
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
AReS
Üye
Mesajlar: 86
Kayıt: 25 Haz 2005 04:58

Mesaj gönderen AReS »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
{AdoDataset1.Active:=False;
AdoDataset1.CommandText:='Select * from personel where ad='+''''+Edit1.text+''''+' and  '+'Soyad='+''''+Edit2.text+'''';
AdoDataset1.Open;



2.
AdoQuery1.Active:=False;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('Select * from personel where ad='+''''+Edit1.text+''''+' and  '+'Soyad='+''''+Edit2.text+'''');
AdoQuery1.Open;


end;
hocam olayı bu şekilde çözdüm komutlar tamam çalıştı ve de aradıgım kaydı dbgrid de gösterdi teşekkür ederim yardımlarınız için .
Bir takım bir şeyleri deneye deneye yapmak daha iyi oluyo pekişiyo. Kodlar belki bir gün bir arkadaşa lazım olur.(= yerine Like da kullanılabilir ihtiyaca göre ) Saygılarımla
Cevapla