|
|
|
Эксепшин на русском....
|
|||
|---|---|---|---|
|
#18+
Народ, как поменять кодировку поля или всей таблицы rdb$exceptions, чтобы текст выводить на русском? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2003, 10:13 |
|
||
|
Эксепшин на русском....
|
|||
|---|---|---|---|
|
#18+
При создании базы надо указать win1251, а потом при подключении в базе указать win1251. Кажись так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2003, 17:56 |
|
||
|
Эксепшин на русском....
|
|||
|---|---|---|---|
|
#18+
Не есть другой подход у меня работает и на 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('Блин уже позно что то менять!'); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2003, 11:14 |
|
||
|
Эксепшин на русском....
|
|||
|---|---|---|---|
|
#18+
Спасибо за такой развернутый ответ. Плпробуем, посмотрим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2003, 13:59 |
|
||
|
Эксепшин на русском....
|
|||
|---|---|---|---|
|
#18+
Тока, сори, комментарии нечитабельны. Можно что-то сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2003, 14:07 |
|
||
|
Эксепшин на русском....
|
|||
|---|---|---|---|
|
#18+
Штирлиц рулит! 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('Блин уже позно что то менять!'); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 10:23 |
|
||
|
Эксепшин на русском....
|
|||
|---|---|---|---|
|
#18+
О, классно. Да, но это я вызываю процедурку и передаю в нее строку на русском, и ... Не доганяю. А где тут кодировки и т.д. rdb$exceptions имеет свою личную кодировку даже если при создании базы я указал win1251. И если я в rdb$message загнал (чудом) русскую фразу, сервак ругается при вызове exception. Вот и возникла у меня идея изменить кодировку таблицы или поля message или домена к этому полю. Пока не выходит чтоб корректно. А предложенный путь я что-то не понял. Ну пороюсь еще. Может догоню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2003, 10:14 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32151238&tid=1580554]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 219ms |
| total: | 502ms |

| 0 / 0 |
