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

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

Как перехватить сообщение сервера?


Lika ©   (2003-05-06 14:23:00) 

Пишу клиент-серверное приложение, сервер-Firebird, компоненты доступа FIBPlus.
Подскажите пожалуйста, как можно перехватить сообщения сервера типа "...value"***null***" (т.е когда пользователь оставил не заполненным поле, которое не может быть null) и др. такого рода сообщения и выдыть свое на русском "значение ...должно быть заполнено" и т.д
В событие OnPostError не обрабатывает сообщения сервера, я пробовала.
Заранее всем спасибо!


Lika   (2003-05-07 11:43:00) [1]

TpFibErrorHandler то что нужно. Спасибо!


Danilka   (2003-05-07 11:25:00) [2]

Lika (07.05.03 10:44)
ну, во-первых, можно сделать так:
try
...
except
on e: Exception do begin
...
end;
end;

а в e.Message - будет сообщение об ошибке, разное для Null и дублирования, правда неудобно будет его анализировать.
но есть второй, более правильный вариант:
в FIBPlus есть компонет: TpFibErrorHandler, у него есть событие: OnFIBErrorEvent, который можно и обрабатывать.
В частности, в обработчик этого события передается код ошибки, он будет разный для ошибки Null и дублирования ключа.


Lika   (2003-05-07 10:44:00) [3]

>Danilka © (07.05.03 10:36)
пока писала предыдущее сообщение пришло твое.

> можно по-разному обработать в зависимости от ошибки, если null - то одно сообщение на экран вывести, дублирование уникального поля - другое сообщение.

Cогласна. С null вроде легче, а дублирование уникального значения,подскажи как?


Zacho   (2003-05-07 10:43:00) [4]


> Lika (07.05.03 10:37)

Ну вот и обрабатывай EIBInterbaseError в try .. except или Application.OnException и вместо "Violation of Primary or UNIQUE key constraint .. " выводи свое сообщение или делай какие-либо другие действия.


Lika   (2003-05-07 10:37:00) [5]

Ну есть поле по которому стоит первичный ключ(т.е значения должны быть уникальны)и пользователь пытается ввести значение
которое нарушает уникальность(т.е запись с таким значение уже есть в таблице). Каждый раз делать поиск в таблице перед сохранением не хотелось бы.


Danilka   (2003-05-07 10:36:00) [6]

Lika (07.05.03 10:25)
для любых попыток, если не проходит запись, то возникает исключение, которое можно по-разному обработать в зависимости от ошибки, если null - то одно сообщение на экран вывести, дублирование уникального поля - другое сообщение.


Danilka   (2003-05-07 10:36:00) [7]

уникального значения а не поля :))


Zacho   (2003-05-07 10:27:00) [8]


> Lika (07.05.03 10:25)

В смысле "уже существующего" ?


Lika   (2003-05-07 10:25:00) [9]

>Zacho © (07.05.03 10:16)
try
....
except
...
end;
при нажатии на кнопку сохранить для обработки Not null полей,
я делала вроде нормально.
А дя попытки ввода уже существующего значения?


Zacho   (2003-05-07 10:16:00) [10]


> Lika (07.05.03 10:01)

try
....
except
...
end;
или Application.OnException


Lika   (2003-05-07 10:01:00) [11]

Ann © (06.05.03 16:41)
>так это же можно отлавливать и в клиентской части. Тот же ввод уже имеющихся значений..

Можно поподробнее?


HSolo   (2003-05-06 17:35:00) [12]

Я такие вещи перехватываю в Application.OnException
Или нужно непременно на уровне сервера?


Ann   (2003-05-06 16:41:00) [13]

так это же можно отлавливать и в клиентской части. Тот же ввод уже имеющихся значений..
Или дело в чем-то другом?


Lika   (2003-05-06 16:33:00) [14]

Дело в том что, я имею ввиду не только эту ошибку, например когда
пользователь пытается ввести значение которое уже существует в таблице(для поля по которому есть первичный ключ)и т.д
Хотелось бы какой нибудь общий способ, чтобы пользователю выходило диалоговое окно с сообщением написанным мной!


Ann   (2003-05-06 16:09:00) [15]

а почему сразу при вводе не проверять заполнено поле или нет?


Lika   (2003-05-06 16:07:00) [16]

Неужели никто мне не поможет!


Наверх

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