powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Эксепшин на русском....
8 сообщений из 8, страница 1 из 1
Эксепшин на русском....
    #32150652
Deem (это именно я!)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, как поменять кодировку поля или всей таблицы rdb$exceptions, чтобы текст выводить на русском?
...
Рейтинг: 0 / 0
Эксепшин на русском....
    #32151238
Фотография SmaLL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При создании базы надо указать win1251, а потом при подключении в базе указать win1251.

Кажись так.
...
Рейтинг: 0 / 0
Эксепшин на русском....
    #32151615
AOSila
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не есть другой подход у меня работает и на 5.6 и на FB!

Подробное описание с теорией применения и почему энто так найдешь на IBese.ru

Я напишу только практику

1. Сначала создаешь процедурку

CREATE PROCEDURE ERROR (
E VARCHAR(2000))
AS
DECLARE VARIABLE EE VARCHAR(78);
BEGIN
EE='';
EE=:E;
/*åñëè âõîäíîé ïàðàìåòð áîëüøå ÷åì 78 òî òóò âîçíèêàåò îøèáêà
êîòîðàÿ óñïåøíî îáðàáàòûâàåòñÿ íèæå*/
UPDATE rdb$exceptions
SET rdb$message=:E
WHERE rdb$exception_name='ERR';
EXCEPTION ERR;
/*ñþäà ïîïàäàåì òîëüêî åñëè âõîäíîé ïàðàìåòð Å áîëüøå 78 ñèìâîëîâ*/
/*EE - ñîäåðæèò 78 ñèìâîëîâ â îáðåçàííûõ îò E*/
when any do
begin
UPDATE rdb$exceptions
SET rdb$message=:EE
WHERE rdb$exception_name='ERR';
EXCEPTION ERR;
end
END

2. Потом вызываешь ее в процедурах или тригерах!

if ((Current_DATE = NEW.tdata) AND (Current_TIME > GO_NEXT_DAY)) then
// Вот ее вызов
execute procedure error('Блин уже позно что то менять!');
...
Рейтинг: 0 / 0
Эксепшин на русском....
    #32152844
Deem (это именно я!)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за такой развернутый ответ. Плпробуем, посмотрим.
...
Рейтинг: 0 / 0
Эксепшин на русском....
    #32152845
Deem (это именно я!)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тока, сори, комментарии нечитабельны. Можно что-то сделать?
...
Рейтинг: 0 / 0
Эксепшин на русском....
    #32153043
Фотография SmaLL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Штирлиц рулит!

CREATE PROCEDURE ERROR (
E VARCHAR(2000))
AS
DECLARE VARIABLE EE VARCHAR(78);
BEGIN
EE='';
EE=:E;
/*если входной параметр больше чем 78 то тут возникает ошибка
которая успешно обрабатывается ниже*/
UPDATE rdb$exceptions
SET rdb$message=:E
WHERE rdb$exception_name='ERR';
EXCEPTION ERR;
/*сюда попадаем только если входной параметр Е больше 78 символов*/
/*EE - содержит 78 символов в обрезанных от E*/
when any do
begin
UPDATE rdb$exceptions
SET rdb$message=:EE
WHERE rdb$exception_name='ERR';
EXCEPTION ERR;
end
END
2. Потом вызываешь ее в процедурах или тригерах!
if ((Current_DATE = NEW.tdata) AND (Current_TIME > GO_NEXT_DAY)) then
// Вот ее вызов
execute procedure error('Блин уже позно что то менять!');
...
Рейтинг: 0 / 0
Эксепшин на русском....
    #32153994
Deem (это именно я!)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, классно. Да, но это я вызываю процедурку и передаю в нее строку на русском, и ... Не доганяю. А где тут кодировки и т.д. rdb$exceptions имеет свою личную кодировку даже если при создании базы я указал win1251. И если я в rdb$message загнал (чудом) русскую фразу, сервак ругается при вызове exception. Вот и возникла у меня идея изменить кодировку таблицы или поля message или домена к этому полю. Пока не выходит чтоб корректно. А предложенный путь я что-то не понял. Ну пороюсь еще. Может догоню.
...
Рейтинг: 0 / 0
Эксепшин на русском....
    #32154077
AOSila
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну ты блин даешь теорию на IBase прочитай там все подробно разжовано!

Но и без теории работает! )))
Хотя теория тоже очень важная штукккккккка
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Эксепшин на русском....
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]