DataModule3.IBQuery1.Close;
DataModule3.IBQuery1.open;
DataModule3.IBQuery1.sql.Clear;
sql:='select * from DONANIM where 1=1 ';
if edit13.text<>'' then sql:=sql+ 'and MARKA like '+#39+formtyaz(edit13.text)+'%'+#39;
if edit14.text<>'' then sql:=sql+ 'and MODEL like '+#39+formtyaz(edit14.text)+'%'+#39;
if edit15.text<>'' then sql:=sql+ 'and SERI_NO like '+#39+formtyaz(edit15.text)+'%'+#39;
if ComboBox1.ItemIndex=0 then sql:=sql+' and DONANIM_TURU= ''Sistem'''; //burda comboboxtan aldığı değeri sorguluyor.
if ComboBox1.ItemIndex=1 then sql:=sql+' and DONANIM_TURU= ''Monitör''';
if ComboBox1.ItemIndex=2 then sql:=sql+' and DONANIM_TURU= ''Yazıcı''';
if ComboBox1.ItemIndex=3 then sql:=sql+' and DONANIM_TURU= ''Tarayıcı''';
if ComboBox1.ItemIndex=4 then sql:=sql+' and DONANIM_TURU= ''Fotokopi Makinası''';
if ComboBox1.ItemIndex=5 then sql:=sql+' and DONANIM_TURU= ''Modem''';
DataModule3.IBQuery1.sql.add(sql);
DataModule3.IBQuery1.open;
bu kod problemsiz olarak çalışıyor. ancak ben bu sorgulamayı dinamik bir hale getirmek istiyorum. programda kullanıcı istediği kadar DONANIM_TURU ekleyebiliyor,
bu kodun combobox kısmını nasıl düzeltmeliyim. aşağıdaki gibi bir kod denedim ama olmadı bir türlü çıkamadım içinden.
datamodule3.donanim_turu.First;
i:=-1;
while not datamodule3.donanim_turu.Eof do
begin
i:=i+1;
a:= (DataModule3.donanim_turu.FieldByName('Donanim_turu').asstring);
dizi[i] :='a';
// combobox1.items.add(DataModule3.donanim_turu.FieldByName('Donanim_turu').asstring);
if ComboBox1.ItemIndex=i then sql:=sql+' and DONANIM_TURU= +dizi[i]';
form4.Caption:=dizi[i];
DataModule3.donanim_turu.next;
end;
bu kod Empty SQL statement hatası veriyor sorgulama yaptırdığımda.
//FORMCREATE Yordamına yazılacak...
var
i:integer;
begin
datamodule3.donanim_turu.First;
for i=0 to datamodule3.donanim_turu.recordcount -1 do
begin
combobox1.items.add(DataModule3.donanim_turu.FieldByName('Donanim_turu').asstring);
datamodule3.donanim_turu.next;
end;
end;
dizi neden kullanıyorsun çözemedim açıkçası.
combobox tan her seçim yapıldığı zaman sorgulama yapması için ise aşağıdaki kodu kullan
//combobox'un onchange veya onclick yordamına ekleyebilirsin bu kodu.. yada sorgula butonun varsa onun altına
sql=sql+' and DONANIM_TURU='''+combobox1.text+'''';
evet
sql=sql+' and DONANIM_TURU='''+combobox1.text+'''';
kod çalıştı dizi gibi mecralara kaymamın sebebi sqli yeterince bilmemem yani bu şekilde kullanabileceğimi bilmiyordm, çok teşekkürler.
önerebileceğiniz sql le ilgili bir kaynak olursa sevinirim.
Birde çok önemli değil ama önceki kodda comboboxtan boş satırı seçince bütün kayıtları getiriyordu, bunda getirmiyor, bunu sağlamanın yolu varmı.