Удобочитаемый Exception
Удобочитаемый Exception
В триггере генерю Exception.
На клиенте хотелось бы получить только текст Exception,
а получаю еще и служебную информацию.
Что можете посоветовать?
FIB или IBX вроде тут не причем,
точнее можно отключить ShowIBMessage из IBErrorMessages,
но тогда я и текст Exception не получу
Вот что FireBird присылает:
===cut===
Exception 268741261.
Exception 12.
CANNOT_DELETE_COUNTRY_0.
Нельзя удалять страну с кодом 0.
trigger 'COUNTRIES_BEFORE''
trigger 'VW$COUNTRIES_BEFORE'.
===cut===
На клиенте хотелось бы получить только текст Exception,
а получаю еще и служебную информацию.
Что можете посоветовать?
FIB или IBX вроде тут не причем,
точнее можно отключить ShowIBMessage из IBErrorMessages,
но тогда я и текст Exception не получу
Вот что FireBird присылает:
===cut===
Exception 268741261.
Exception 12.
CANNOT_DELETE_COUNTRY_0.
Нельзя удалять страну с кодом 0.
trigger 'COUNTRIES_BEFORE''
trigger 'VW$COUNTRIES_BEFORE'.
===cut===
Мне не нравится, то что нужно будет жестко привязываться к порядку возвращаемых строк. У FireBird одно количество строк, у Interbase другое.dimitr писал(а):вытягивай из IBX/FIB+ статус-вектор и парси его самостоятельно
IBX вытягивает строки так:
Код: Выделить всё
while (GetGDSLibrary.isc_interprete(local_buffer, @status_vector) > 0) do
begin
[...]
usr_msg := usr_msg + string(local_buffer);
end;
например: "xxxЭто ошибка", а потом этот xxx распознавать.
Но тоже как-то криво.
Может есть какой-нибудь переключатель: не присылать служебную информацию?
Спасибо! Тест уменьшился, но служебная инфа еще осталась:pastor писал(а):TpFibErrorHandlerSikambr писал(а): Можно пример или ссылку, в каком направлении копать.
===
CANNOT_DELETE_COUNTRY_0.
Нельзя удалять страну с кодом 0.
At trigger 'COUNTRIES_BEFORE'
At trigger 'VW$COUNTRIES_BEFORE'.
===
TpFibErrorHandler оставляет все, что остается после строк, в которых есть слово "EXCEPTION".
Для Interbase этого было бы достаточно, а вот для FireBird нет.
Жестко привязываться к серверу не хочется.
К тому же, в следующих версиях FireBird, разработчики могут поменять порядок строк EXCEPTION.
Какие еще есть идеи?