![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не могу поймать EDatabaseError [D4, Paradox]
Vlad40 © (2004-02-25 14:34:00)Помогите, плз. При отсутствии значения в поле Required TTable происходит exception и выводится соответствующее сообщение с именем поля. Я хочу заменить стандартное сообщение на свое, но поймать exception я не могу. Ни блок try, ни что другое не помогает. Наверное это просто, но не могу поймать... Заранее спасибо.
Vlad40 (2004-02-26 11:49:00) [1]
> Ross
Данная ошибка (незаполнение требуемого поля) не порождает событие OnPostError. Поэтому Ваше предложение не подходит. Но проблема уже решена
Ross (2004-02-25 18:07:00) [2]Vlad40 (25.02.04 14:53) [4]
procedure TDM.tblProducersPostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
begin
E.Create('My error');
Dataset.cancel;//Отменяет изменение
end;
Vlad (2004-02-25 16:17:00) [3]
> Vlad40 (25.02.04 16:14) [17]
Я предлагал тебе простой и удобный вариант, ты сам себе задачу усложнил
Vlad40 (2004-02-25 16:14:00) [4]Пользователю ест-но не надо. Мне надо. Ладно, это уже не важно.
Val (2004-02-25 16:06:00) [5]>Vlad40 (25.02.04 16:05) [14]
а зачем пользователю видеть ваше fieldname?
Val (2004-02-25 16:06:00) [6]>Vlad40 (25.02.04 16:05) [14]
а зачем пользователю видеть ваше fieldname?
Vlad40 (2004-02-25 16:05:00) [7]Кстати в сообщении указывается не имя поля, а DisplayName
Vlad40 (2004-02-25 16:03:00) [8]Спасибо, не надо ;-). Думал, есть другие методы.
Val (2004-02-25 16:02:00) [9]При отсутствии значения в поле Required TTable происходит exception и выводится соответствующее сообщение с именем поля.
???
DenK_vrtz (2004-02-25 16:01:00) [10]Field 'NAME' must have a value
как разобрать строку надуюсь объяснять не надо? :)
Vlad40 (2004-02-25 15:56:00) [11]Еще вопрос - а есть ли возможность определить, какое поле вызвало это исключение?
Vlad40 (2004-02-25 15:19:00) [12]
> Vlad © (25.02.04 15:14) [8]
Нет, ну так проверять можно что угодно, это понятно. Хотелось использовать стандартные средства
> DenK_vrtz © (25.02.04 15:07) [7]
Спасибо, про это забыл. То, что надо
Vlad (2004-02-25 15:14:00) [13]
> Vlad40 (25.02.04 15:01) [6]
Таки на OnPostError не попадаем ?
Есть более простой вариант: на событие BeforePost для всех полей которые Required проверять заполнены они или нет, если нет, выдавать ругательский мессадж
DenK_vrtz (2004-02-25 15:07:00) [14]см.
Application.OnException
Application.ShowException
Vlad40 (2004-02-25 15:01:00) [15]И что это мне дало? Единственное что изменилось, это не происходит выхода в среду Delphi в режиме отладки. А остальное без изменения. Мне же надо вставить свое сообщение при возникновении exception
Vlad (2004-02-25 14:58:00) [16]delphi>tools>debugger options>language exceptions
убрать флажок stop on delphi exceptions
Vlad40 (2004-02-25 14:53:00) [17]Может я что-то не так делаю. В обработчике пишу
procedure TDM.tblProducersPostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
begin
ShowMessage('My error');
Action:=daAbort;
end;
Ставлю точку останова. Не останавливается и выдает стандартное сообщение
Zacho (2004-02-25 14:48:00) [18]Не знаю. У меня - работает.
Vlad40 (2004-02-25 14:41:00) [19]Пробовал OnPostError и т.п. Проскакивает без всякой реакции
Zacho (2004-02-25 14:37:00) [20]См. TDataSet.OnPostError и т.п.