SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » RDB$ERROR и русский текст в EXECUTE STATEMENT
RDB$ERROR и русский текст в EXECUTE STATEMENT [сообщение #2715] Mon, 10 July 2023 02:22 Переход к предыдущему сообщению
CyberMax в настоящее время не в онлайне  CyberMax
Сообщений: 8
Зарегистрирован: June 2023
Junior Member
FB 4.0.2.2770. Подключение в кодировке WIN1251.

Выполняю запрос:
EXECUTE BLOCK
RETURNS (TEXT_EXCEPTION VARCHAR(1024))
AS
BEGIN
BEGIN
EXECUTE STATEMENT 'execute block as begin EXCEPTION EXC$CHECK_DATA ''there exception''; end';
END
WHEN ANY DO
BEGIN
:TEXT_EXCEPTION = RDB$ERROR(MESSAGE);
SUSPEND;
END
END

Получаю текст:
exception 2
EXC$CHECK_DATA
There exception
At block line: 1, col: 24
At block line: 6, col: 9

Меняем текст на русский:
EXECUTE BLOCK
RETURNS (TEXT_EXCEPTION VARCHAR(1024))
AS
BEGIN
BEGIN
EXECUTE STATEMENT 'execute block as begin EXCEPTION EXC$CHECK_DATA ''Здесь исключение''; end';
END
WHEN ANY DO
BEGIN
:TEXT_EXCEPTION = RDB$ERROR(MESSAGE);
SUSPEND;
END
END

Выполняем:
Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.
Cannot transliterate character between character sets.
At block line: 10, col: 9.

С этим в трекер идти?
 
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Предыдущая тема: clumplet too long (FB4)
Следующая тема: EXECUTE STATEMENT и "маркеры" кодовых страниц
Переход к форуму:
  


Текущее время: Fri Nov 01 02:59:29 GMT+3 2024

Общее время, затраченное на создание страницы: 0.01383 секунд