![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Замена сообщений в стандартных Exceptions [IB6.x]
Andrey © (2003-01-14 17:55:00)Собственно это и есть вопрос.
Можно ли вместо стандартного сообщения в Exception (допустим возникающем при нарушении foreign key или primary key не суть важно) выдавать свое сообщение.
Тоесть есть таблица:
create table aa
(ifld integer not null primary key);
insert into aa (ifld) values (1);
При попытке сделать
insert into aa (ifld) values (1);
справедливо вываливается сообщение о нарушении некоего constraint-а. Вот это сообщение и хотелось бы писать по русски, а не по буржуйски.
Единственный способ что я нашел это фактически дублировать работу constraint-а в триггере. Это естественно плохой выход значительно замедляющий работу.
Alexandr (2003-01-16 10:20:00) [21]в приложениях не должно быть сообщений об ошибках, которые программист не предусмотрел.
filyandiya (2003-01-16 10:00:00) [22]...странно что никто не ответил, может и нет нормального решения - по идее IB возвращает код ошибки и собственно сообщение - если не править .msg файл, то выход только один - в обработчике - ну либо OnPostError(у Query), либо OnException (у Application) либо еще где... смотреть код и выдавать свое сообщение
Как доставать имена таблиц и полей которые собственно както связаны с ошибкой я не знаю - если только в клиенте до внесения изменений проверить данные на корректность (BeforePost)
:) можно извратиться - написать парсер сообщений IB - и из них извлекать данные об ошибке - опятьже для упрощения разбора можно подправить сообщения в .msg файле - опять же при помощи IBExpert
Andrey (2003-01-15 16:56:00) [23]Неужели мнения закончились?
Andrey (2003-01-15 11:03:00) [24]Я это читал и даже использую, но как вызов стандартного Exception (возникающего допустим при нарушении primary key) заменить вызовом своего всеравно непонимаю. Уж объясните слабоумному пожалуста :)
Delirium^.Tremens (2003-01-15 10:52:00) [25]http://www.ibase.ru/devinfo/customex.htm
http://www.ibase.ru/develop.htm
Andrey (2003-01-15 10:45:00) [26]Знаете, я возможно плохо искал, но я ничего подходящего для реализации того что я прошу ненашел.
Также интересно послушать альтернативные мнения.
Andrey (2003-01-14 18:20:00) [27]Посмотрим, но всеравно недумаю, что ibexpert ответит на вторую часть:
> Тоесть при нарушении primary key в разных таблицах хотелось
> бы выдавать сообщения различающиеся не только именем таблици.
Delirium^.Tremens (2003-01-14 18:17:00) [28]
> Это конечно интересный вариант, но файл interbase.msg несколько
> неудобочитаем
http://www.ibexpert.com
Andrey (2003-01-14 18:12:00) [29]Это конечно интересный вариант, но файл interbase.msg несколько неудобочитаем, и (что более важно) хотелось бы при нарушении различных constraint-ов к различным таблицам выдавать раличные сообщения. Тоесть при нарушении primary key в разных таблицах хотелось бы выдавать сообщения различающиеся не только именем таблици.
Delirium^.Tremens (2003-01-14 17:57:00) [30]interbase.msg