Bir programda select ile bir arama yapmak istedim. Notları tutan tek tablolu bir veri tabanından arama yapmak istiyorum. Arama kriterlerinide iki tane RadioGrup bileşenlerinden belirleyerek yapıyorum.
Yazdığım kod aşağıdaki şekilde;
Kod: Tümünü seç
dm.dstNotlar.Close;
dm.dstNotlar.SelectSQL.Strings[1]:='';
dm.dstNotlar.SelectSQL.Strings[2]:='';
dm.dstNotlar.SelectSQL.Strings[3]:='';
dm.dstNotlar.SelectSQL.Strings[4]:='';
//Arama Kriterini belirleyen RadioGrup1 Bileşeni
if RadioGroup1.ItemIndex=0 then
begin
dm.dstNotlar.SelectSQL.Strings[1]:='and NOT_UYARI_GIRIS_TARIHI=:giristarihi';
dm.dstNotlar.ParamByName('giristarihi').AsDate:= StrToDate(Edit1.Text);
end
else
begin
if RadioGroup1.ItemIndex=1 then
begin
dm.dstNotlar.SelectSQL.Strings[1]:='and NOT_UYARI_TARIHI= :uyaritarihi';
dm.dstNotlar.ParamByName('uyaritarihi').AsDate:= StrToDate(Edit1.Text);
end
else
begin
dm.dstNotlar.SelectSQL.Strings[1]:='and NOT_ACIKLAMA like :acklm';
dm.dstNotlar.ParamByName('acklm').AsString:=Edit1.Text+'%';
end;
end;
//Sıralama Kriterini belirleyen RadioGrup2 bileşeni
if RadioGroup2.ItemIndex=0 then
begin
dm.dstNotlar.SelectSQL.Strings[3]:='order by NOT_UYARI_TARIHI';
dm.dstNotlar.SelectSQL.Strings[4]:='desc';
end
else
begin
dm.dstNotlar.SelectSQL.Strings[3]:='order by NOT_ACIKLAMA';
dm.dstNotlar.SelectSQL.Strings[4]:='desc';
end;
dm.dstNotlar.Open;
Sorunum eğer Sıralamayı belirleyen RadioGrup2 bileşenin olduğu IF li kısmı çıkartırsam arama yapıyor. Eğer bu satırı devreye alırsam hiç sonuç gelmiyor. Bu tuhaf sorun ne olduğunu bir türlü anlamadım. Komutları adım adım inceledim her yer çalışıyor ama sıralama rutini devrede olursa sonuç gelmiyor.
Yardımlarınızı bekliyorum teşekkürler.