Sql'de tablo filtrelemede hata mesajı çıkarma

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
must_sargin
Üye
Mesajlar: 216
Kayıt: 14 Şub 2004 03:13
Konum: Gebze
İletişim:

Sql'de tablo filtrelemede hata mesajı çıkarma

Mesaj gönderen must_sargin »

iyi çalışmalar, tabloları sql komutlarıyla filtreliyorum.bunun için editin change olayına

IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select musteri.*,personel.*,servisislem.* from servisislem');
IBQuery1.SQL.Add('left outer join musteri on (servisislem.musteriid=musteri.musteriid)');
IBQuery1.SQL.Add('left outer join personel on (servisislem.hazirlayanpersonelid=personel.personelid)');
IBQuery1.SQL.Add('left outer join personel on (servisislem.teslimalanpersonelid=personel.personelid)');
IBQuery1.SQL.Add('where musteri.musteriadisoyadi like ''%'+RzEdit4.Text+'%''');
IBQuery1.SQL.Add('order by servisislem.fisid desc');
IBQuery1.Open;

komutunu kullanıyorum.sorunum kayıt ararken tabloda olmayan bir kayıt döndürdüğünde Access Vailation hatası veriyor.kayıt bulunamayınca hata mesajı verdirebilirmiyim ?
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Re: Sql'de tablo filtrelemede hata mesajı çıkarma

Mesaj gönderen Terminator »

must_sargin yazdı:iyi çalışmalar, tabloları sql komutlarıyla filtreliyorum.bunun için editin change olayına

IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select musteri.*,personel.*,servisislem.* from servisislem');
IBQuery1.SQL.Add('left outer join musteri on (servisislem.musteriid=musteri.musteriid)');
IBQuery1.SQL.Add('left outer join personel on (servisislem.hazirlayanpersonelid=personel.personelid)');
IBQuery1.SQL.Add('left outer join personel on (servisislem.teslimalanpersonelid=personel.personelid)');
IBQuery1.SQL.Add('where musteri.musteriadisoyadi like ''%'+RzEdit4.Text+'%''');
IBQuery1.SQL.Add('order by servisislem.fisid desc');
IBQuery1.Open;

komutunu kullanıyorum.sorunum kayıt ararken tabloda olmayan bir kayıt döndürdüğünde Access Vailation hatası veriyor.kayıt bulunamayınca hata mesajı verdirebilirmiyim ?
Yanlış bir ifade tarzı.
AV hatası bir OS sistem hatasıdır RDBMS değil.
Bellek ihlali durumlarında ortaya çıkar.
Kayıt dönmüyorsa dönmüyodur, ve bunu verisetini kontrol ederek zaten
kolayca öğrenebilirsin, veri dönmediği halde bişeyler yapmaya kalkıyor olmalısın ki AV oluşuyor.
Firebird Foundation Member #208
http://www.firebirdsql.org
must_sargin
Üye
Mesajlar: 216
Kayıt: 14 Şub 2004 03:13
Konum: Gebze
İletişim:

Mesaj gönderen must_sargin »

dataset kontrolüne nasıl bir hata kontrolü yapmam gerekir ?
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Tabloda uygun kayıt yok ise hiç hata vermez. Boş resultset döner. Sizin başka bir sorununuz var. Query ile ilgili değil.
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

Delphici olduğuna göre debug etmesini de biliyor olman lazım,
gerçi ben hiç debugger/tracingle kod yazmadım ama işe yarıyor olmalı ki
yıllardır kime baksam trace ederken ya da break point koyarken görüyorum. artık derleyiciler çok gelişti, her noktada değişkenlerin içini, herbişeyi görerek adım adım yazabiliyorsun, ha gayret.. biraz üstüne git bulursun yaptığın hatayı. mesela intilize edilmemiş bir obje pointeri kullanmaya kalkmışsındır ya da free-nil yaptığın bir objeyi tekrar kullanmaya çalışmışsındır vs. sürükle bırak programcılığının da böyle sideeffectleri var işte malesef.. ;)
Firebird Foundation Member #208
http://www.firebirdsql.org
must_sargin
Üye
Mesajlar: 216
Kayıt: 14 Şub 2004 03:13
Konum: Gebze
İletişim:

Mesaj gönderen must_sargin »

debug yaparak hatanın TMSDBAdvGrid den kaynaklandığını buldum.herkese teşekkürler.
kolay gelsin.
Cevapla