delphi+SQL(LIKE)

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ı
dtgb
Üye
Mesajlar: 175
Kayıt: 07 May 2004 10:02

delphi+SQL(LIKE)

Mesaj gönderen dtgb »

slm arkadaslar tablolarını access te olusturdugum bir bir program yazıyorum delphide. fakat olusturdugum sql cumlesinde like komutunu calıstıramadım yardımcı olabilirmisiniz??

begin
a:=edit1.Text;
dm.Qiplik.Close;
dm.Qiplik.SQL.Clear;
dm.Qiplik.SQL.Text := 'select * from dbo_Iplikler where IplikKodu LIKE' + #39 + a + #39 ;
dm.Qiplik.Prepare;
dm.Qiplik.Open;
end;
sizce sorun nerede??
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

Sanırım lıkedan sonra buşluk vermemişsin..
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

öncelikle aramıza hoşgeldiniz :)

1. Öncelikle SQL'i Access'te deneyip çalıştırın. Bir de Access'te değişik kullanımlar olabiliyor. Emin olmamakla birlikte % yerine # kullanılıyor galiba. LIKE'ın standart kullanımı şu şekildedir :

SELECT *
FROM TABLO_ADI
WHERE ALAN_ADI LIKE 'AAA%'

2. DM.Qiplik.Open satırından önce, query'i açmadan SQL'e bakarak yanlışı tespit edin.

ShowMessage(DM.Qiplik.SQL.Text)

Kolay gelsin.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Kod: Tümünü seç

dm.Qiplik.SQL.Text := 'select * from dbo_Iplikler where IplikKodu LIKE '''%' + a +'%'''; 
Çalıştıramadım derken herhangi bir sonuç mu döndürmüyor, yoksa başka bir hata mı alıyorsun pek anlaşılmasa da yukarıdaki şekilnde yazarsan çalışacaktır.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
dtgb
Üye
Mesajlar: 175
Kayıt: 07 May 2004 10:02

Mesaj gönderen dtgb »

Hosbulduk
malesef arkadaslar komut hala calısmadı yani calısmadı derken like komustu islevini yapmıyor.
Tesekkurler...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

kodunuzu ve varsa aldığınız hata belirtirseniz daha kolay çözüm bulunabilir.
Kullanıcı avatarı
dtgb
Üye
Mesajlar: 175
Kayıt: 07 May 2004 10:02

Mesaj gönderen dtgb »

begin
a:=edit1.Text;
dm.Qiplik.Close;
dm.Qiplik.SQL.Clear;
dm.Qiplik.SQL.Text := 'select * from dbo_Iplikler where IplikKodu LIKE ' + #39 + a + #39 ;
// ShowMessage(dm.Qiplik.SQL.Text);
dm.Qiplik.Prepare;
dm.Qiplik.Open;
end;
program calısıyor hatta edit 1 in icindeki deger de a degiskeninin icin
e geliyor fakat like komutu calısmıyor
mesela iplik kodum ac21 ise ac yazdıgımda hicbir keyıt ekrana gelmiyor sadece ac21 yazdıgımda ekrana kayıt geliyor
sebebi ni pek anlayamadm ama accessten kaynaklanıyor olabilir.
yardımcı olursanız sevinirim...
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

o zaman bir hata vermemesine ragmen sonuç beklediğiniz gibi degil....
Bu durumlarda yazdıgınız sql cümlesini sql Explorer gibi veya kullandığınız veritabanının ilgili sql calıştırma aracı içinden deneyin. Orada çalıştığından emin olduğunuz kodu delphi icinden run time de oluşturmaya çalışın...
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
name
Kıdemli Üye
Mesajlar: 243
Kayıt: 09 Ağu 2003 02:11
Konum: İstanbul

Mesaj gönderen name »

Gerekli cevap zaten verilmiş ama @dtgb kendi kodu üzerinde değişiklik yapıldığında daha iyi anlayacak. 5. satırda yapılmış değişikliklere dikkat edin.

Kod: Tümünü seç

1. begin 
2.   a:=edit1.Text; 
3.   dm.Qiplik.Close; 
4.   dm.Qiplik.SQL.Clear; 
5.   dm.Qiplik.SQL.Text := 'select * from dbo_Iplikler where IplikKodu LIKE ' + #39 +''+'%' + a+'' + #39 ; 
6.   // ShowMessage(dm.Qiplik.SQL.Text); 
7.   dm.Qiplik.Prepare; 
8.   dm.Qiplik.Open; 
9. end; 
Benim tavsiyem şu şekilde kullanmanız.

Kod: Tümünü seç

1. begin 
2.   s:='select * from dbo_Iplikler where IplikKodu LIKE ''%%s''';
3.   a:=edit1.Text; 
4.   dm.Qiplik.Close; 
5.   //dm.Qiplik.SQL.Clear; // "SQL.Text :=" kullanıldığı için bu satıra gerek yok
6.   dm.Qiplik.SQL.Text :=format(s,[a]);  
7.   // ShowMessage(dm.Qiplik.SQL.Text); 
8.   dm.Qiplik.Prepare; 
9.   dm.Qiplik.Open; 
10. end; 
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

Sorunun üstünden 1 yıl geçmiş ama yinede bununla ilgili bende like konusunda bir sıkıntı yaşadım. Access te like sorgusunda kullanımı şu şekilde yaptım:

Kod: Tümünü seç

select * from stok where stokadi like "*[aranan_kelime]*" 
umarım faydalı olur
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Mesaj gönderen Berdem »

ADODataSet1.CommandText :='SELECT * FROM tablo WHERE alan Like "%'+Edit1.Text+'%"';
gibi tanımlama ile çözüm olabilir...
Cevapla