ibdataset1.next?

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ı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

ibdataset1.next?

Mesaj gönderen y.kulac »

s.a.

firebird 1.5 delpdi7 ve ibx bileşenleri kullanıyorum.

Kod: Tümünü seç

IBDataSet1.Close;
IBDataSet1.SelectSQL.Clear;
IBDataSet1.SelectSQL.Add('SELECT * from BILGILER');
IBDataSet1.SelectSQL.Add('where ADI = '''+FrmAna.dBEdit6.Text+'''');
IBDataSet1.SelectSQL.Add('and SOYADI = '''+FrmAna.DBEdit5.Text+'''');
IBDataSet1.SelectSQL.Add('and BABADI = '''+FrmAna.DBEdit4.Text+'''');
IBDataSet1.SelectSQL.Add('and DOGUMTARIHI = '''+FrmAna.DBEdit10.Text+'''');
IBDataSet1.Open;
buraya kadar her şey güzel. kaydı buluyorum. tabloda 1000 küsür kayıt var.
formumda iki tane buton var. ileri ve geri diye.
yukarıdaki koddan sonra kaydı bulunca bir önceki ve bir sonraki şeklinde kayıtlar arasında gezemiyorum.

Kod: Tümünü seç

ibdataset1.next;
ibdataset.prior;
aynı kayıtta çakılı kalıyor.
ne yapmalıyım. iyi çalışmalar dilerim.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Kod: Tümünü seç

//...
IBDataSet1.Open; 
IBDataSet1.FetchAll;
//...
Şeklinde dedikten sonra IBDataSet1.Next; i dener misin? Ayrıca IBDataSet in üzerine sağ tuş ->DataSet Editor... den {Generate SQL} ile diğer sql leri de oluşturmanız gerekebilir :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
@y.kulac , ordaki where koşuluna uyan 1000 küsür kayıtmı var?
yoksa tabloda 1000 küsür kayıt mı var?
next ve prior bence koşulunuza uyan başka kayıt olmadığı için hareket etmiyor.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

aslangeri yazdı:s.a.
@y.kulac , ordaki where koşuluna uyan 1000 küsür kayıtmı var?
yoksa tabloda 1000 küsür kayıt mı var?
next ve prior bence koşulunuza uyan başka kayıt olmadığı için hareket etmiyor.
tablodaki toplam kayıt sayısı 1000 küsür.
yukarıdaki kod ile sadece 1 kayıtı sorgulayıp forma getiriyorum.
daha sonra o kayıttta kalıyor dataset.
next ve prior olayları işlemiyor.

evet şarta uyan sadece 1 kayıt var.
peki next ve prior olayının çalışması için ne yapmam lazım.
söz konusu kayıt bulnduktan sonra diğer kayıtlara da geçebilmem lazım.
bunun için dataseti tekrar açıp kapatmak çözüm gibi olsada, o zaman
tekrar ilk kayıta gitmez mi dataset. ben ise bulduğum kayıttan sonrakine veya öncekine gitmek istiyorum.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
next ve prior işlemez çünkü gidecek önceki veya sonraki kayıt yok.
senin where koşuluna (select sql de yazan sql) uyan kayıtlar arasında next ve prior yapar.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

rsimsek yazdı:

Kod: Tümünü seç

//...
IBDataSet1.Open; 
IBDataSet1.FetchAll;
//...
Şeklinde dedikten sonra IBDataSet1.Next; i dener misin? Ayrıca IBDataSet in üzerine sağ tuş ->DataSet Editor... den {Generate SQL} ile diğer sql leri de oluşturmanız gerekebilir :wink:
abi IBDataSet1.FetchAll; denedim sonuç aynı.
DataSet Editor... den {Generate SQL} ile diğer sql lerin hepsi oluşmuş durumda.
modify, insert, delete ve refresh sql leri zaten oluştulmuş durumda.
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

aslangeri yazdı:s.a.
next ve prior işlemez çünkü gidecek önceki veya sonraki kayıt yok.
senin where koşuluna (select sql de yazan sql) uyan kayıtlar arasında next ve prior yapar.
peki bunu çaresi yok mudur?.
benim aklıma şu geliyor. next ve prior yapmak istedğim zaman
ilgili dbeditleri ayrı bir datasource ye bağlayayım.
datasource yide bir ibtableye bağlayayım.
ama bu sefer yine ilk kayıttan başlamaz mı. yani ben sorguladığım kaydı nasıl baz alıpta, ondan önceki ve sonraki kayıtlara geçebileyim.
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

Bende benzer bir işlem yapmıştım ama uyan kayıtların sonuna git diye IBDataSet yerine IBQuery kullanarak sorguyu çektirmitim IBQuery.next diyerek bu kayıtlara uyan son kayda git diye bir problem olmadı.Öneri olarak birde IBQuery ile dernermisiniz
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

benim önerim
sorgulmayı ayrı bir ibquery ile yap sonra bu sorgudan dönen kaydın id sini tablonda locate et.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla