Sorgu Problemi

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
yokname
Üye
Mesajlar: 77
Kayıt: 17 Nis 2005 08:16
Konum: izmir

Sorgu Problemi

Mesaj gönderen yokname »

Arkadaşlar ben dblookupcombobox ile bolum_Ad larına gore ogrenci tablosundan listeleme yapmak istiyorum.ama bu kodu yazdığımda hiç sonuç dönmüyor sorun büyük ihtimalle 2. select te ama çözemedim
Yardımlarınızı bekliyorum.
Teşekkür ederim

Kod: Tümünü seç

  SelectSQL.Clear;
  Close;
  SelectSQL.Add('select * from ogrenci');
  SelectSQL.Add('where bolum_no=(select bolum_no from bolum where bolum_adi=:bolum_adi)');
  open;
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

"=" yerine "in" kullanın.
Kullanıcı avatarı
yokname
Üye
Mesajlar: 77
Kayıt: 17 Nis 2005 08:16
Konum: izmir

Mesaj gönderen yokname »

Maalesef sonuç aynı yine boş çıkıyor.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

bu sorguda bir eksiklik var. bu şekilde yazarsan tüm kayıtlar gelir. tam olarak ne yapmak istediğni yazarsan iyi olur.

Kod: Tümünü seç

bolum_Ad larına gore ogrenci tablosundan listeleme yapmak 
belirli bir bölümde olan öğrencilerin listesini mi kastettin acaba? tahiminime göre lookupcomboxda bölüm adları var ve sen bu bölümde okuyan öğrencilerin listesini almak istiyorsun. o zaman şöyle bir kod yazmalısın.
SelectSQL.Clear;
Close;
SelectSQL.Add('select * from ogrenci');
SelectSQL.Add('where bolum_no=(select bolum_no from bolum where bolum_adi=:'+lookupcombox.text+')');
open;
Kullanıcı avatarı
yokname
Üye
Mesajlar: 77
Kayıt: 17 Nis 2005 08:16
Konum: izmir

Mesaj gönderen yokname »

Evet tam olarak yapmak istediğim bu soylediğin şekilde de denedim ancak aynı sonuçla karşılaştım

Kod: Tümünü seç

 dm.dset_ogrenci.SelectSQL.Clear;
  dm.dset_ogrenci.Close;
  dm.dset_ogrenci.SelectSQL.Add('select * from ogrenci');
  dm.dset_ogrenci.SelectSQL.Add('where bolum_no in(select bolum_no from bolum where bolum_adi=:'+dblookupcombobox1.text+')');
  dm.dset_ogrenci.open;
Yardımlarınızı bekliyorum...
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Merhaba,

Forumda yapacağın Arama sonucunda pekçok sonuç dönecektir

Ben şöyle yapıyorum

Kod: Tümünü seç


var
  tarih1,tarih2:tdate;
  begin
    ibquery1.close;
    ibquery1.sql.clear;
    ibquery1.sql.add('select from RAPORLAR');
    ibquery1.sql.add('where INCTARIHI Between :tarih1 and tarih2 and ISTOLYTURU=:ISTOLAYTURU'):
    ibquery1.parambyname('tarih1').asdate:=datetimepicker1.date;
    ibquery1.parambyname('tarih2').asdate:=datetimepicker2.date;
    ibquery1.parambyname('ISTOLYTURU').asstring:=dblookupcombobox1.text;
    ibquery1.open

dediğim gibi forumda arama sonucunda pek çok iyi ve güzel örnekler cevaplar bulacaksın

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

:oops: :oops: :oops:

valla çok utandım sayfa açık kaldığı için cevapları görmemişim. ustalardan özür dilerim.
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
yokname
Üye
Mesajlar: 77
Kayıt: 17 Nis 2005 08:16
Konum: izmir

Mesaj gönderen yokname »

Çok teşekkürler dalgınlıktan 2 saattir uğraşıyorum bu dolu kafaya arama falan kar etmez :) tekrar teşekkürler

Kod: Tümünü seç

 dm.dset_ogrenci.SelectSQL.Clear;
  dm.dset_ogrenci.Close;
  dm.dset_ogrenci.SelectSQL.Add('select * from ogrenci');
  dm.dset_ogrenci.SelectSQL.Add('where bolum_no =(select bolum_no from bolum where bolum_adi=:bolum_adi)');
  dm.dset_ogrenci.ParamByName('bolum_Adi').asstring:=dblookupcombobox1.Text;
  dm.dset_ogrenci.open;
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

tırnakları yazmayı unuttuğumdan çalışmamıi tabiki. params ilede yapabilirsin. bu kısım
bolum_adi=:'+lookupcombox.text+')');
şu şekilde olmalıydı
bolum_adi=:'''+lookupcombox.text+''')');
özür :)
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Re: Sorgu Problemi

Mesaj gönderen rsimsek »

yokname yazdı:

Kod: Tümünü seç

  SelectSQL.Clear;
  Close;
  SelectSQL.Add('select * from ogrenci');
  SelectSQL.Add('where bolum_no=(select bolum_no from bolum where bolum_adi=:bolum_adi)');
  open;
Eksikliği yazarsak iyi olur :wink: :bolum_adi için Open dan önce

Kod: Tümünü seç

dm.dset_ogrenci.ParamByName('bolum_Adi').asstring:=dblookupcombobox1.Text;
Parametreyi vermeyi unutmuş :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla