Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Замена сообщений в стандартных Exceptions [IB6.x]


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо