Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Error [D7, FB]


Страницы:   1 2

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 ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо