Firebird hata mesajlarının kontrolü.

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
SieS
Üye
Mesajlar: 166
Kayıt: 17 Haz 2003 10:41
Konum: Konya

Firebird hata mesajlarının kontrolü.

Mesaj gönderen SieS »

Merhaba arkadaşlar.
Hazırladığım veritabanında yaklaşık 7 tane aktif kullanıcı var.
Bunların içinde kayıt girme yetkisi olan var olmayan var.
A tablosuna ali girmryr tam yetkili fakat Veli sadece okumaya Veli bağlandığı zaman serverdan ingilizce olarak siz sadece select işlemi yapabilirsiniz gibi bir mesaj geliyor. Bu Mesajları ben kendim yazmak ve kullanıcıya göndermek isterim.
Nasıl nerden yapabilirim.

Şimdiden herkese teşekkür ederim.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Kullandıgınız table veya query bilesenlerinin on post error, on delete error gibi eventlerinde hata mesajını yakalayıp ayıklayabileceginiz gibi. Daha genel bir yontem olarak.:

Formunuza bir TAppEvent koyup onexeption eventinde de

Kod: Tümünü seç

procedure TFRM_ANCESTOR.APE_MAINException(Sender: TObject; E: Exception);
var
  VAR_MESSAGE : string;
begin
  VAR_MESSAGE:=E.Message;
  // Burada mesaji inceler hangi mesaj oldugunu kontrol edip 
  // Türkçe bir mesaj verebilirsiniz.. 
  // Veya Abort; komutu ile hatayi kullanıcıya yansıtmayabilirsiniz de...
end;

Bunun daha da guzel ve bir yolu da boş bir forma sadece TAPPEvent'i koyup ilgili eventine de kodu yazdiktan sonra. Bu forma mesela FRM_ANA ismini verip kaydettikten sonra diger butun formlarinizin

Kod: Tümünü seç

type
  TFRM_BASIC = class(TForm)
seklindeki clas tanimlamasını

Kod: Tümünü seç

type
  TFRM_BIRIM = class(TFRM_ANA)
sekline donusturup uses kısmına da FRM_ANA formunun dosya adini eklerseniz bu sayede tek bir yere yazacaganiz baska baska kodlar da butun formlariniz icin calismis olacaktir.


Bu yonteme form inherit etmek denir ki. Bu yontemi gelistirerek birbirinden inherit edilmis detayli bir inheritence form agaci olusturarak cok fazla kolayliklar saglayabilir ve bir cok standart kodun nasil yazildigini unutacak sekilde artik kullanmayabilirsiniz...

Kolay gelsin...
SieS
Üye
Mesajlar: 166
Kayıt: 17 Haz 2003 10:41
Konum: Konya

Mesaj gönderen SieS »

Fahrettin Hocam yazdıklarınızı harfiyen yaptım hata mesajları geliyor kontrol edebiliyorum ama benim kontrol alanıma gelmeden aynı mesaj takrar çıkıyor .

Ben kontrol ettirdiğim yerde yazdırmasamda başka biryerden yine aynı mesajı ekrana veriyor.

Nerde eksik yapıyorum acaba.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Sanırım aslında istediginiz oldu fakat Delphi icinden programi calistirdiginizda programciyi uyarmak icin sadee Delphi Compiler'ina verilen hata sizi yaniltiyor. O hata normalde programin exe'sini dogrudan calistirdiginizda verilmeyecektir. Sadece sizin kontrolunuzden gectikten sonra sizin verdiginiz mesaj ekrana verilecektir.

Dogrudan exe'yi calistirarak durumu gozleyebilirsiniz.

Kolay gelsin....
SieS
Üye
Mesajlar: 166
Kayıt: 17 Haz 2003 10:41
Konum: Konya

Mesaj gönderen SieS »

Değişen bir şey yok hocam sadece exeyi çalıştırdığımdada önce program kendi hatasını veriyor arkasından da benim kontrol ettirdiğim yerden veriyor.
İlk gelen mesaj nerden geliyor onu bulamadım.
Onu bulsam diğeri bana kalıyo.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Enteresan bir yerde bir yanlışlık var herhalde ama nerede? Yıllardır bu şekilde kodlarım çalışıyor. Nasil bir kod yazdini onu bir görelim olmazsa belki gozunuzden kacan bir sey vardır birinin farkedecegi.

Kolay gelsin...
SieS
Üye
Mesajlar: 166
Kayıt: 17 Haz 2003 10:41
Konum: Konya

Mesaj gönderen SieS »

procedure TForm5.ApplicationEvents1Exception(Sender: TObject;
E: Exception);
VAR hata_msg:string;
begin
hata_msg := E.Message;
showmessage(hata_msg);

end;

Kod yukardaki gibi sizde aynen böyle yazmışsınız kod çalışıyor çünki showmessage kısmı bana geliyor fazak bu koddan önce aynı mesaj yine geliyor orayı bulamadım.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Acikcasi bu noktadan once hata nasil ne nereden kaynaklanıyor tahmin etmek zor... Eger bu bir table post islemi ise bahsettigim onposterror eventini bir deneyin....

Aklıma başka da ibr ihtimal ya da sebep gelmiyor açıkcası..... :(
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Mesaj gönderen sair »

Neden IB nin Exceptionlarını kullanmayı denemiyorsun ?
Sevgiler...
SieS
Üye
Mesajlar: 166
Kayıt: 17 Haz 2003 10:41
Konum: Konya

Mesaj gönderen SieS »

Nasıl Kullanıldığı konusunda küçük bir örnek yada döküman adresi verebilirmisin.
Teşekkür ederim.
Cevapla