DB hata mesajlarını yakalama...?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
tolgaozb
Üye
Mesajlar: 70
Kayıt: 26 Ara 2003 12:22
Konum: Karşıyaka
İletişim:

DB hata mesajlarını yakalama...?

Mesaj gönderen tolgaozb »

selamlar
Delphi 6 ve SQLServer ile geliştirdiğim projede SQL server tarafında master-detail ilişkileri tanımlamış durumdayım...örneğin master bir kayıt silindiğinde ona bağlı detail kayıtlar var ise delphi tarafında hata mesajı oluşmakta...veya dublicate kayıtlar için sql server'dan kaynaklanan hata mesajları...
yapmak istediğim :
bu hata mesajlarını delphi tarafında yakalyıp hata mesajının tipine göre kendi hata mesajımı çıkartabilmek....yani hata mesajlarını ayırt edebilmek...
örneğin dublicate için başka bir mesaj master-detail ilişkisini bozan bir işlem için başka bir mesaj...
çıkan error mesajlarının duruma göre farklı id vs. bilgileri varmıdır ?
var ise yakalayıp bu ayrımı nasıl yapabilirim...?

not : try except bloğu ile hataları kullanıcıya göstermeden standart bir mesaj çıkartmak mümkün ...istediğim işlem türüne göre farklı mesajlar...


şimdiden teşşekürler...
herkese iyi çalışmalar
T.Tolga Özbaltalar - http://www.veridizayn.com
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

aşağıdaki kalıpla yapabilirsin :

try
...
except
on EZeroDivide do ShowMessage('Sıfıra bölme hatası');
on EOverflow do ShowMessage('Taşma hatası');
on EMathError do ShowMessage('Matematiksel hata');
end;

gibi. veya direk Delphi'nin hata mesajını verdirmek istiyorsan ki bu her hata için farklı oluyor :

try
...
except
on E: Exception do ErrorDialog(E.Message, E.HelpContext);
end;

Kolay gelsin.
Kullanıcı avatarı
tolgaozb
Üye
Mesajlar: 70
Kayıt: 26 Ara 2003 12:22
Konum: Karşıyaka
İletişim:

Mesaj gönderen tolgaozb »

Belirttiğiniz şey EDatabase error olarak geçiyor benim ihtiyacım olan databaseden gelen error'lerde tek bir mesaj çıkarmak değil, çıkan error koduna ulaşıp ona göre mesaj çıkarmak, örneğin DUPLICATE KEY için ayrı COLUMN REFERENCE için ayrı mesaj çıkarabilmek. Hata ID'sine ulaşabilme imkanı var mı?

Teşekkürler, iyi çalışmalar
T.Tolga Özbaltalar - http://www.veridizayn.com
cemarik
Üye
Mesajlar: 45
Kayıt: 30 Ağu 2003 11:05
Konum: İzmir

Hata Mesajlarıyla İlgili

Mesaj gönderen cemarik »

Bence ilgili Query/Table ın OnPostError'una

Kod: Tümünü seç

 if pos('PK_TABLE1',E.Message)>0  then
   Showmessage('Primary Key Hatası');
veya

Kod: Tümünü seç

 if pos('UNQ_TABLE1',E.Message)>0  then
   Showmessage('Bu Kayıt Zaten Var...');
gibi mesajları yakalayabileceğin gibi OnDelete Error' unda da

Kod: Tümünü seç

 if pos('FK_TABLE1',E.Message)>0  then
   Showmessage('Bu Kayda Bağlı Bilgiler Var...');
diyebilirsin.
Cevapla