![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ексепшны или стандартные сообщения об ошибках [D7, IB6.x]
Некто © (2005-01-12 14:23:00)
create table sotr
(
kod_sotr smallint not null primary key,
fio varchar(50) not null
);
set term ^ ;
create trigger sotr_bi0 for sotr
active before insert position 0
as
begin
if (exists(select kod_sotr from sotr where (kod_sotr=new.kod_sotr)))
then exception dbl_msg_sotr;
if (new.fio is null)
then exception null_msg_sotr;
end^
нормально ли в триггере обрабатывать ошибки или лучше воспользоваться стандартными сообщениями об ошибке чтобы потом отлавливать их в Delphi?
P.N.P. (2005-01-13 00:46:00) [1]Посмотри здесь:
http://sql.ru/forum/actualthread.aspx?tid=150566
Некто (2005-01-12 23:14:00) [2]ну ладно, бог с этим ТН...
Ну наверняка есть возможность отловить стандартное сообщение об ошибке и заменить его своим?
например с помощью:
when sqlcode <код ошибки> do
begin
...
end
?
Sergey13 (2005-01-12 15:28:00) [3]2[2] Некто (12.01.05 15:23)
>пускай меняют если ошиблись при вводе
А если не при вводе, или после ввода другой инфы по человеку? Зря ты это, ИМХО. Никто не запрещает менять ТН в течении жизни.
P.N.P. (2005-01-12 15:27:00) [4]primary key лучше сделать отдельно, а по полю
kod_sotr создать уникальный индекс
Некто (2005-01-12 15:23:00) [5]позволено, kod_sotr=табельный_номер (по сути)....пускай меняют если ошиблись при вводе
P.N.P. (2005-01-12 14:44:00) [6]Правильное решение - обрабатывать в своем приложении.
Можно конечно и в триггере, но тогда производительность
упадет - сначала сервер будет проверять
первичный ключ, а затем еще и триггер.
Оно надо?
И в догонку - неужели юзерам позволено редактировать
поле kod_sotr?