![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Error [D7, FB]
Ann © (2003-06-03 10:55:00)Добрый день!
Уважаемые, может кто подскажет, как отловить ошибку которую выдает система, и выдавать свою?
например при вводе новой записи в НД.
Подскажите пожалуйста
Nikolay M. (2003-06-03 14:22:00) [1]ИМХО, лучше повесить на триггер перед вставкой генерацию своего Exception-a, ловить его в try..except и выдавать текст Exception-a пользователю
Ann (2003-06-03 12:45:00) [2]Всем огромное спасибо за помощь!
Zacho (2003-06-03 12:38:00) [3]Дополню: а если вызывать exception не надо, то в Sandman25 © (03.06.03 12:12) raise ... заменить на ShowMessage(...)
Sandman25 (2003-06-03 12:33:00) [4]Так уберите Required в False и будет только Ваша ругань.
Соловьев (2003-06-03 12:19:00) [5]
> Ann © (03.06.03 12:13
ну а что надо? на русский перевести? ну так лови этот ексепшн. Разве в OnValidate не ловится?
Ann (2003-06-03 12:18:00) [6]Sandman25 © (03.06.03 12:12)
выдает сообщение, но перед ним ругается вот так
raised exception class exception mith message "Вы не ввели ID"
Ann (2003-06-03 12:13:00) [7]Соловьев © (03.06.03 12:09)
поставила у Required=true, выдает вот что
Field dcena2_id must have a value
Sandman25 (2003-06-03 12:12:00) [8]BeforePost
IF Table1.FieldByName("ID").isNull then
Raise exception.Create("Вы не ввели ID");
Соловьев (2003-06-03 12:09:00) [9]
> Насколько я понимаю, в случае если юзер ничего не введет
> в поле dcena2_id то OnValidate для этого поля не вызовется.
если у поля свойство Required=true, вызовется.
Zacho (2003-06-03 12:07:00) [10]
> Соловьев © (03.06.03 12:03)
Sender as TField вообще не нужно, Sender и так TFiled.
> Ann © (03.06.03 12:01)
Насколько я понимаю, в случае если юзер ничего не введет в поле dcena2_id то OnValidate для этого поля не вызовется.
Соловьев (2003-06-03 12:03:00) [11]
> Sender as TField).AsInteger=Null
заменить на Sender as TField).IsNull
Ann (2003-06-03 12:01:00) [12]Ошибку пишет следующую
Validation error for column dcena2_id, value "***null***"
а пишу вот что
procedure TDM.FDS_jur_docDCENA2_IDValidate(Sender: TField);
begin
if (Sender as TField).AsInteger=Null then ShowMessage("Сохраните запись");
end;
Соловьев (2003-06-03 12:00:00) [13]
procedure TForm1.Table1IDValidate(Sender: TField);
begin
if (Sender as TField).AsInteger > 10 then
begin
Raise Exception.Create("Id не может быть больше 10");
end;
Zacho (2003-06-03 11:59:00) [14]
> Ann © (03.06.03 11:54)
Приведи код обработчика OnPostError
Stas (2003-06-03 11:59:00) [15]Напиши код
Ann (2003-06-03 11:54:00) [16]в procedure TForm1.Table1IDValidate(Sender: TField);
вообще не заходит :(
а если вешаю обработку на OnPostError то сначала идет системная ошибка, потом моя, потом опять системная.. почему так?
Соловьев (2003-06-03 11:44:00) [17]uses + Dialogs;
Ann (2003-06-03 11:43:00) [18]Соловьев © (03.06.03 11:25)
пишет вот что
[Error] Undeclared identifier: "ShowMessage"
Соловьев (2003-06-03 11:25:00) [19]обрабатывай событие нужного поля OnValidate:
procedure TForm1.Table1IDValidate(Sender: TField);
begin
if (Sender as TField).AsInteger > 10 then ShowMessage("Вы ввели ID больше 10");
end;
Zacho (2003-06-03 11:24:00) [20]
> Ann © (03.06.03 11:19
А чем не устраивает OnPostError ?