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