Recordcount sıfırlandığında

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ı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Recordcount sıfırlandığında

Mesaj gönderen haydarxxx »

Kod: Tümünü seç

IBQuery3.close;
IBQuery3.SQL.Clear;
IBQuery3.SQL.Add('Select*from TBL_OGRENCI ');
IBQuery3.open;
IBQuery3.last;
JvDotNetEdit21.Text:= FloatToStr(IBQuery3.recordcount);
ile kayıt sayılarını alıyorum (IBdataset Kullanıyorum)(master tablom ve ona bağlı detay toplolarım var)
fakat tüm datayı boşaltıyorum.Projemi kapatıp yeniden açtığımda hata alıyorum (sql hatası)

Kod: Tümünü seç

IBQuery3.close;
IBQuery3.SQL.Clear;
IBQuery3.SQL.Add('Select count(*) from TBL_OGRENCI ');
IBQuery3.open;
IBQuery3.last;
JvDotNetEdit21.Text:= FloatToStr(IBQuery3.recordcount);
denedim olmadı.İbx tarafına gidip direk veri tabanından bir kayıt girdikten sonra projeyi açarsam düzeliyor.kısacası Firebird veri tabanında kayıt sayısı sıfır ise sql hatası veriyor.Teşekkür ediyorum.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
hata alıyorum ifadesi yerine şu hatayı veriyor XXXXX şeklinde bir ifade kullansaydınız daha iyi olurdu kanaatindeyim. mesajları okuduğumuzda programın niye hata verdiğini öğreniyoruz..
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

Haklısın :cry:

procedure TForm1.FormActivate(Sender: TObject);
begin
IBQuery3.close;
IBQuery3.SQL.Clear;
IBQuery3.SQL.Add('select*from TBL_OGRENCI ');
IBQuery3.open;
IBQuery3.last;
JvDotNetEdit21.Text:= inttostr(IBQuery3.recordcount);
end;
datda kayıt yoksa verdiği hata

Project Project.exe raised exception class EIBInterBaseEror with message 'DYnamic SQL Error SQL Error code =-104
Unexpected end of command'.Progcess stopped.Use Step or Run to cotinue.
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

Kod: Tümünü seç

procedure TForm1.FormActivate(Sender: TObject); 
begin 
IBQuery3.close; 
IBQuery3.SQL.Clear; 
IBQuery3.SQL.Add('select count(*) as kaysay from TBL_OGRENCI '); 
IBQuery3.open; 
JvDotNetEdit21.Text:=IBQuery3.FieldByName('kaysay').AsInteger;
end;
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

Kod: Tümünü seç

if QRY_OGRENCI.recordcount=0 then
 begin
 JvDotNetEdit21.Text:='0';
 abort;
 end
 else
 begin
IBQuery3.close;
IBQuery3.SQL.Clear;
IBQuery3.SQL.Add('select*from TBL_OGRENCI ');
IBQuery3.open;
IBQuery3.last;
JvDotNetEdit21.Text:= inttostr(IBQuery3.recordcount);


şeklinde düzenledim sorun çıkarmıyor teşekür ediyorum
mceL
Üye
Mesajlar: 56
Kayıt: 28 Eyl 2003 01:19
Konum: Bursa
İletişim:

Mesaj gönderen mceL »

strtofloat olarak veya strtoint olarak çevirince eğer verilen değer boş ise veya karakterli ifade ise hata veriyor.

Kod: Tümünü seç

try

exception

end;
bloğuna alabilir ve hatayı karşıya göstermeyebilirsiniz ya da boş ise varsayılan olarak değer ver diyebilirsiniz ya da bunun dışındaki çevirmeler için örneğin kullanıcın sayı girip girmediği kontrolü için "val" fonksiyonunu kullanabilirsiniz.
Cevapla