Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

Не могу поймать 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.027 c
8-1069102281
Aleksey_
2003-11-17 23:51
2004.03.28
Мерцание рисунка


6-1074061607
Клювокрылый
2004-01-14 09:26
2004.03.28
php сервер


1-1078414183
SkullNet
2004-03-04 18:29
2004.03.28
Перемещение текста по форме...


6-1074108780
Looo
2004-01-14 22:33
2004.03.28
Загрузить Delphi-приложение через Web-страницу


3-1076912590
SPIDERus
2004-02-16 09:23
2004.03.28
Locate и loCaseInsensitive не работает с русскими буквами