comboboxlarda ki bilgileri sorguya sokma Gönderen: ahwet1 Tarih: 07 May 2008 16:51:30
Merhaba arkadaşlar bi sorunum var yardım ederseniz sevinirim.
sorun şu :
5 tane combobox var arama butonuna bastığımda comboboxlarda ki bilgileri tabloda arattırıp sonucu da gridde göstermek istiyorum.ancak bu comboboxlardan sadece seçilenler sorguya girmeli. kendi çapımda bi kod yazdım ama sonuçta gridde hala eski bilgiler kalıyor. işte yazdığım kodlar :
with dm.qArama do
begin
if eDers.Text='' then
begin
msjDersSec.ShowModal;
exit;
end;
dm.qArama.Close;
dm.qArama.SQL.Clear;
dm.qArama.SQL.Add('select * from SORU');
dm.qArama.SQL.Add('where DERS=:ders');
if eKonu.Text<>'' then dm.qArama.SQL.Add('and KONU=:konu');
if eDuzey.Text<>'' then dm.qArama.SQL.Add('and DUZEY=:duzey');
if eZorluk.Text<>'' then dm.qArama.SQL.Add('and ZORLUK=:zorluk');
if eStil.Text<>'' then dm.qArama.SQL.Add('and STIL=:stil');
dm.qArama.ParamByName('ders').Value:=ara.eDers.Text;
if eKonu.Text<>'' then dm.qArama.ParamByName('konu').Value:=ara.eKonu.Text;
if eDuzey.Text<>'' then dm.qArama.ParamByName('duzey').Value:=ara.eDuzey.Text;
if eZorluk.Text<>'' then dm.qArama.ParamByName('zorluk').Value:=ara.eZorluk.Text;
if eStil.Text<>'' then dm.qArama.ParamByName('stil').Value:=ara.eStil.Text;
dm.qArama.Open;
ana.suiDBGrid1.DataSource:=dm.dArama;
Ynt: comboboxlarda ki bilgileri sorguya sokma Gönderen: ahwet1 Tarih: 08 May 2008 11:15:26
sanırım derdiimi anlatamadım:( tekrar denemek istiyorum :$
elimde 5 tane lookupcombobox var bunlardan hangileri seçilirse ( mesela 3 tanesi seçilip 2 tanesi boş bırakılabilir ) bu değerler sorguya girecek ve sorgunun sonucu da gridde gösterilecek.
inşallah bu sefer anlatabilmişimdir...
Ynt: comboboxlarda ki bilgileri sorguya sokma Gönderen: RewriteRule Tarih: 08 May 2008 14:28:32
eğer elinde 5 tane dblookupcombobox varsa bunların keyvalue değerini kullanmalısın. tabi bu veritabanına bağlı olarak değişir. yani ara.Ekonu.Text yerine ara.Ekonu.KeyValue gibi. Ayrıca diğer bir sorun da sorguya AND parametrelerini eklerken bitişik yazmandan sonda boşluk kullanmamandan kaynaklı olabilir. Bunu görebilmek için de dm.qArama.SQL.Text değerini ShowMessage ile görebilirsin.
Ynt: comboboxlarda ki bilgileri sorguya sokma Gönderen: SelçuK Tarih: 08 May 2008 14:58:41
ben size mantığını kurayım isterseniz siz projenize uygulayın.
Şimdi lookupcombobox ların seçil ğerlerini birer değişkene atayın yani;
var
ss1,ss2,ss3,ss4,ss5:string;
begin
ss1:=DBLookupComboBox1.Text;
ss2:=DBLookupComboBox1.Text;
ss3:=DBLookupComboBox1.Text;
ss4:=DBLookupComboBox1.Text;
ss5:=DBLookupComboBox1.Text;
Adoquery1.sql.clear;
Adoquery1.sql.add('Select * From Tablonuz '''+ss1+''' and '''+ss2+''' and '''+ss3+''' and '''+ss4+''' and '''+ss5+''' ');
Adoquery1.Open;
Şeklinde birşe yaılabilir. ama sorgu kısmı şu an için mantıksız. Siz kendinize göre anlamlandırabilirsiniz.
Ynt: comboboxlarda ki bilgileri sorguya sokma Gönderen: ahwet1 Tarih: 08 May 2008 15:22:09
RewriteRule usta çok sağolasın sayende hallettim sorunu sorgumda bi problem yokmuş çok farklı biyerdeymiş problem.
"dm.qArama.SQL.Text değerini ShowMessage ile görebilirsin." bunun sayesinde buldum problemi tekrardan çok sağolasın.
SelçuK usta senin yöntemi de bi denicem benim sorguya göre çok daha basit duruyo

Ynt: comboboxlarda ki bilgileri sorguya sokma Gönderen: SelçuK Tarih: 08 May 2008 15:48:08
RewriteRule usta çok sağolasın sayende hallettim sorunu sorgumda bi problem yokmuş çok farklı biyerdeymiş problem.
"dm.qArama.SQL.Text değerini ShowMessage ile görebilirsin." bunun sayesinde buldum problemi tekrardan çok sağolasın.
SelçuK usta senin yöntemi de bi denicem benim sorguya göre çok daha basit duruyo

Aslında ben onu genelde isteğe bağlı sorgulamalarda kullanıyoum şöyleki mesela 3 şube düşün ve bu
3 şubedeki 0dan farklı ürünlei düşün tablo şöyle olsun
urun_id, urun_adana, urun_istanbul, urun_mersin
var
ss1,ss2,ss3:string;
begin
if adana.checked=true then ss1:=' and urun_adana>0 ' else ss1:='';
if istanbul.checked=true then ss2:=' and urun_istanbul>0 ' else ss2:='';
if mersin.checked=true then ss3:=' and urun_mersin>0 ' else ss3:='';
Adoquery1.SQL.Clear;
Adoquery1.SQL.Add('select * from tablo where turu=1'+ss1+ss2+ss3);
Adoquery1.Open;
end;
Adam isterse hiçbirini seçmez tüm stokları görür isterse istediğini seçer ve o bölgedeki "0" dan farklı olan
stokları görür.
Ynt: comboboxlarda ki bilgileri sorguya sokma Gönderen: ahwet1 Tarih: 08 May 2008 15:59:47
ya benim yaptığım program öğretmen programı gibi bişe. bi havuz var havuza sürekli soru giriliyo istenildiği zaman bu sorulardan rastgele istediği sayıda bi sınav kağıdı oluşturabilisun. istersen sınavın sorularını rastgele diil de kendin seçebiliosun falan filan işte

benim sorgumda da dersler falan veritabanından çağrıldığı için senin yaptıın gibi checkbox kullanamıyorum

zaten yeniyim delphi de aklıma gelen yöntem neyse onunla yapmaya çalışıyorum
