Listeleme Problemi.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Listeleme Problemi.
Merhabalar ;
bir listeleme sorunum var, listeleme olayının kullanacağı durum şöyle :
kullanıcı aramak istediği kelime ve ya harf grubunu bir editin içine girer,
ve arama işlemi daha önceden tanımlanan veriler içinde olacak (tanımlanacak veriler için bir kesinlik yoktur, yani herhangi bir cümle olabilir, otomobil markaları olabilir.) otomabil markaları olduğunu düşünürsek : kullanıcı "m" harfini arattığı zaman; -mercedes , -bmw gibi
kayıtları göstermesi gerekiyor. Bunu yapmak için sql de bulunan LIKE komutunu kullandım. ama like komutu büyük-küçük harf seçiyor. bunu yapmak için bana başka bir yol gösterebilirmisiniz ??
Paradox for windows 5.0 kullanılıyor. SQL Query,DbGrid,Edit,buton bileşenleri kullanılor. delphi7 ile çalışılıyor.
Teşekkürler
bir listeleme sorunum var, listeleme olayının kullanacağı durum şöyle :
kullanıcı aramak istediği kelime ve ya harf grubunu bir editin içine girer,
ve arama işlemi daha önceden tanımlanan veriler içinde olacak (tanımlanacak veriler için bir kesinlik yoktur, yani herhangi bir cümle olabilir, otomobil markaları olabilir.) otomabil markaları olduğunu düşünürsek : kullanıcı "m" harfini arattığı zaman; -mercedes , -bmw gibi
kayıtları göstermesi gerekiyor. Bunu yapmak için sql de bulunan LIKE komutunu kullandım. ama like komutu büyük-küçük harf seçiyor. bunu yapmak için bana başka bir yol gösterebilirmisiniz ??
Paradox for windows 5.0 kullanılıyor. SQL Query,DbGrid,Edit,buton bileşenleri kullanılor. delphi7 ile çalışılıyor.
Teşekkürler
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
Selamlar.
Paradox'un destekleyip desteklemediğinden tam olarak emin değilim ama Containing komutunu kullanarak yapabilirsiniz sanırım, forumda da bu şekilde aramanızda fayda var.Ek olarak Table bileşeninin FindNearest metodunu da kullanabilirsiniz..Bir de UpperCase ve LowerCase fonksiyonları da işinize yarayabilir.
Kolay gele.
Paradox'un destekleyip desteklemediğinden tam olarak emin değilim ama Containing komutunu kullanarak yapabilirsiniz sanırım, forumda da bu şekilde aramanızda fayda var.Ek olarak Table bileşeninin FindNearest metodunu da kullanabilirsiniz..Bir de UpperCase ve LowerCase fonksiyonları da işinize yarayabilir.
Kolay gele.
Blue Alone arkadaşımızın da dediği gibi UpperCase ve LowerCase fonksiyonlarına da dikkat ederek arama yaparsak sana şöyle bir örnek yazabilirim:
şeklinde bir kod ile yapabilirsin. Umarım işine yarar... Kolay gelsin...
Kod: Tümünü seç
Select * From Otolar where otoadi like '%ü%', otoadi like '%Ü%'
şeklinde bir kod ile yapabilirsin. Umarım işine yarar... Kolay gelsin...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Re: Listeleme Problemi.
Merhaba,
Yani
şeklinde bir kod girerseniz:
mehmet ve suaT size sonuç olarak geri döner.
(Bu yazdığım firebird için syntax tır. ibexpertte çalışıyor.)
Not : || işaretleri stringi toplamak için kullanılıyor. Ve klavyede soldaki alt tuşu basılı iken numeric key padden 124 e basarak çıkarıyorsunuz.
Kolay gelsin.
bu söylediğinizi tam olarak anlayamadım. Eğer "ben içinde m olanları göster dediğim zaman hem bmw hem Mercedes hem de megan ı göstersin" derseniz. arattığınız alanı ve arattığınız bilgiyi upper fonksiyonuna tabi tutun.SeRoKi yazdı: Bunu yapmak için sql de bulunan LIKE komutunu kullandım. ama like komutu büyük-küçük harf seçiyor. bunu yapmak için bana başka bir yol gösterebilirmisiniz ??
Yani
Kod: Tümünü seç
select * from invoices where upper(musteri_adi) like '%'||upper('t')||'%'
mehmet ve suaT size sonuç olarak geri döner.
(Bu yazdığım firebird için syntax tır. ibexpertte çalışıyor.)
Not : || işaretleri stringi toplamak için kullanılıyor. Ve klavyede soldaki alt tuşu basılı iken numeric key padden 124 e basarak çıkarıyorsunuz.
Kolay gelsin.
Seroki arkadaşım yukarıda bahsettiğin olaya bir örnek verebilirsen yada daha açık yazabilirsen yardımcı olmaya çalışalım...Tek bir harf için hem büyük hem de küçük şeklini kullanmak konusunda problem yok, harf grubu kullanılacağı zaman problem oluyor.
Kolay Gele...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
-
- Üye
- Mesajlar: 17
- Kayıt: 10 Kas 2005 05:15
- Konum: Antalya
- İletişim:
Selam,
Paradox veri tabanında SQL kullanımı oldukça kısıtlı bildiğim kadarıyla. Ansi-SQL standardı olan birçok komut veya SQL fonksiyonu desteklenmiyor paradox'ta.
Aynı performansı alamayabilirsin ama, arama için TTable'ın Filter özelliğini kullanabilirsin. Bunun için "fake" bir filter yazıp, OnFilterRecord da kendin Pos ile kontrol edebilirsin. Mesela dize aradığın alanın "AD" olduğunu varsayarsak;
Örnek:
DataSet1.Active:=false;
DataSet1.Filtered:=true
DataSet1.Filter:='AD > '!''; // Dataset'in filtersız gibi çalışması için, tüm kaytılar gelsin diye
DataSet1.Active:=true;
Sonra;
procedure TForm1.DataSet1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
Accept := Pos(Edit1.Text,DataSet1.FieldByName('AD').AsString)>0;
end;
Kolay gelsin.
Paradox veri tabanında SQL kullanımı oldukça kısıtlı bildiğim kadarıyla. Ansi-SQL standardı olan birçok komut veya SQL fonksiyonu desteklenmiyor paradox'ta.
Aynı performansı alamayabilirsin ama, arama için TTable'ın Filter özelliğini kullanabilirsin. Bunun için "fake" bir filter yazıp, OnFilterRecord da kendin Pos ile kontrol edebilirsin. Mesela dize aradığın alanın "AD" olduğunu varsayarsak;
Örnek:
DataSet1.Active:=false;
DataSet1.Filtered:=true
DataSet1.Filter:='AD > '!''; // Dataset'in filtersız gibi çalışması için, tüm kaytılar gelsin diye
DataSet1.Active:=true;
Sonra;
procedure TForm1.DataSet1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
Accept := Pos(Edit1.Text,DataSet1.FieldByName('AD').AsString)>0;
end;
Kolay gelsin.
Firebird database ilke şu şekilde bir sorun çıkmıyor ama bir dene istersen.
Kolay gelsin.
Kod: Tümünü seç
Screen.Cursor := crSQLWait;
datmodul.StokSorgu.Close;
datmodul.StokSorgu.SelectSQL.Clear;
datmodul.StokSorgu.SelectSQL.Add('Select * From STOK');
datmodul.StokSorgu.SelectSQL.Add('Where upper(ACIKLAMA) Like upper(''' + '%' +
EditAraAciklama.Text + '%' + ''')');
datmodul.StokSorgu.Open;
Screen.Cursor := crDefault;