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

Вниз

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

 
Lika   (2003-05-06 14:23) [0]

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


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

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


 
Ann ©   (2003-05-06 16:09) [2]

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


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

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


 
Ann ©   (2003-05-06 16:41) [4]

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


 
HSolo ©   (2003-05-06 17:35) [5]

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


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

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

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



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


> Lika (07.05.03 10:01)

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


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

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


 
Zacho ©   (2003-05-07 10:27) [9]


> Lika (07.05.03 10:25)

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


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

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


 
Danilka ©   (2003-05-07 10:36) [11]

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


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

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


 
Zacho ©   (2003-05-07 10:43) [13]


> Lika (07.05.03 10:37)

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


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

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

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

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


 
Danilka ©   (2003-05-07 11:25) [15]

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 11:43) [16]

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



Страницы: 1 вся ветка

Текущий архив: 2003.05.26;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.022 c
14-83698
Ksanka
2003-05-05 11:51
2003.05.26
Запуск виндового медиа плейера


14-83652
ctranik
2003-05-07 22:41
2003.05.26
У FTP есть такая команда


1-83494
MegaVolt
2003-05-14 11:40
2003.05.26
Как правильно добавлять данные в StringGrid?


4-83798
iNew
2003-03-27 07:46
2003.05.26
Посмотрите на код и оцените с точки зрения оптимальности и вообще


1-83437
Переяслов Григорий
2003-05-13 10:39
2003.05.26
Абсолютные координаты контрола.