Форум: "Базы";
Текущий архив: 2003.05.26;
Скачать: [xml.tar.bz2];
ВнизКак перехватить сообщение сервера? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c