Firebird 'de filitreleme sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
celalatak
Üye
Mesajlar: 70
Kayıt: 27 Şub 2004 12:41

Firebird 'de filitreleme sorunu

Mesaj gönderen celalatak »

Merhaba;
Paradox kullanıyordum Firebird'e yeni geçtim. Table bileşeninde olduğu gibi IBDataSet ile filitreleme yaptım ancak kod çalışmadı.


procedure TfrmMusteriler.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=char(VK_RETURN) then
begin
key:=#0;
IBDataSet1.Filter:='AD='+quotedstr(edit1.Text+'*');
IBDataSet1.Filtered:=true;
end;

if edit1.Text='' then IBDataSet1.Filtered:=false;
end;

İlginize şimdiden teşekkür ederim.
zyildiz
Üye
Mesajlar: 115
Kayıt: 09 Mar 2004 01:22
Konum: Adapazarı

Mesaj gönderen zyildiz »

Hayırlı olsun Hocam;
mademki FireBird'de geçmişsiniz..şu filtreleme işlemi yerine
SQL sorgusu kullanın derim..

mesela ;Ada göre armayapalım...
IBQuery ile

with IBquery1 Do begin
Close;
Sql.Clear;
Sql.Add('select * from personel where adi = '''+edit1.text+'''');
Open;
bu şekilde kullanmanızı öneririm..

Not:Bildiğiniz gibi Tırnakların sayısı önemli :wink:
kolay gelsin...
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Sanırım arkadaş benzer kayıtları getirmek istiyor bu sebeple SQL'de LIKE Kullanmalı

Yani

Kod: Tümünü seç

...
WHERE AD LIKE 'ADN%'
ADN ile başlayan kayıtlar gelir.

Kod: Tümünü seç

...
WHERE AD LIKE '%NAN'
Bitişi NAN olan kayıtlar gelir.

Kod: Tümünü seç

...
WHERE AD LIKE '%DNA%'
içinde DNA geçen kayıtlar gelir.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
celalatak
Üye
Mesajlar: 70
Kayıt: 27 Şub 2004 12:41

Mesaj gönderen celalatak »

Yardımlarınız için teşekkür ederim.Ancak IBDataSet1'de giriş de kabul ediyorum. Ayrıca master olarak çalışıyor ona bağlı birtane daha IBDataSet var.

Yukarda verdiğim kodu çalıştırıyor ancak hata mesajı yok. Ama işlem görmüyor. IBDataSet de filter komutu var bir şekilde kulanılıyor olmalı diye düşünüyorum.
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

ibdatasetin onfilterrecord olayını kullanabilirsiniz.
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

ben bu konuda ibdataset kullanacağınıza ibquery ve buna bağlı ibupdate kullanmanızı öneririm ben boyle kullanıyorum hiçte sorunum yok inşallah ta olmazz :lol:
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Mesaj gönderen sair »

Alucard IBQuery Raporlama ve sorgulamalar için üretilmis bir bilesendir. Ibdataset ise kayit girisleri,silme,güncelleme gibi islemler icin tasarlanmistir. Bu sebeble IBQuery i kullanip birde yanina IBUpdateSQL kullanmak ne kadar mantikli olabilir ki.. IBDataset zaten bu ikisinin butunlesmis halidir. Iki ayri bilesen kullanmak yerine neden bir tane kullanmiyorsun..

Celal bey edit e girdiginiz degeri dogrudan filtreye gönderip bi test edin. Filtreliyormu bir bakin... Zannedersem editte aldigi deger tabloda olmadigi icin hata vermiyor ama kayitta getirmiyor.. Dosrudan deger atayarak bir test edin..

Sevgiler...
Geçip gideriz bizde ağızsız,dilsiz ve sorgusuz
İstanbul gibi düşeriz iki kıtaya birden...
En aşağılık düş, en büyük sevdadan belki
Erkek ölümler; bir uzun iç çekişle büyür göğsümüz
celalatak
Üye
Mesajlar: 70
Kayıt: 27 Şub 2004 12:41

Mesaj gönderen celalatak »

Kod: Tümünü seç

procedure Tmo.IBDataSet1FilterRecord(DataSet: TDataSet;
  var Accept: Boolean);
begin
accept :=DataSet['AD']>=Edit1.Text;
end;
IBDataSet order by kullanmak lazım
şeklinde filitreleme yapıyor
Cevapla