RDB$PROCEDURES.RDB$PROCEDURE_SOURCE - русский не пройдет?

Ремонт и восстановление баз данных InterBase, Firebird, Yaffil

Модераторы: kdv, Alexey Kovyazin

Ответить
wordofjustice
Сообщения: 6
Зарегистрирован: 11 мар 2008, 13:26

RDB$PROCEDURES.RDB$PROCEDURE_SOURCE - русский не пройдет?

Сообщение wordofjustice » 19 май 2008, 13:02

Здраствуйте.

В базе внезапно пропала возможность создавать (и редактировать) процедуры. На запрос:

Код: Выделить всё

select pr.rdb$procedure_name,
pp.rdb$parameter_name,
pp.rdb$parameter_type,
pp.rdb$parameter_number,
fs.rdb$field_name,
fs.rdb$field_type,
fs.rdb$field_length,
fs.rdb$field_scale,
fs.rdb$field_sub_type,
fs.rdb$segment_length,
fs.rdb$dimensions,
cr.rdb$character_set_name,
co.rdb$collation_name,
fs.rdb$collation_id,
fs.rdb$character_set_id,
d.rdb$dimension,
d.rdb$lower_bound,
d.rdb$upper_bound,
pp.rdb$description,
fs.rdb$character_length,
fs.rdb$field_precision,
pp.rdb$parameter_mechanism,
pp.rdb$field_source,
pp.rdb$default_source
from rdb$procedures pr
left join rdb$procedure_parameters pp on pp.rdb$procedure_name = pr.rdb$procedure_name
left join rdb$fields fs on fs.rdb$field_name = pp.rdb$field_source
left join rdb$field_dimensions d on d.rdb$field_name = fs.rdb$field_name
left join rdb$character_sets cr on fs.rdb$character_set_id = cr.rdb$character_set_id
left join rdb$collations co on ((fs.rdb$collation_id = co.rdb$collation_id) and
(fs.rdb$character_set_id = co.rdb$character_set_id))
where (1=1)
order by pr.rdb$procedure_name, pp.rdb$parameter_type, pp.rdb$parameter_number
упорно выдавалось:

Код: Выделить всё

Cannot transliterate character between character sets.
Cannot transliterate character between character sets.
Полез копаться и выяснил что причиной этого безобразя - невозможность конвертации поля RDB$PROCEDURES.RDB$PROCEDURE_SOURCE причем в тех процедурах в которых были коменатрии на русском.

Честно говоря это вводит в ступор. Ведь эти процедуры были ранее написаны в том же ИБэксперте. Ничего с кодировками не делал, хотя виноват конечно я (вот только не могу понять в чем). После последнего апдейта вроде все совершенно нормально работало довольно приличное время.

ОС - WinXP SP2
FB - 2.1.0.17735
Размер базы - маленький

С покаянием приму обвинения в криворукости и ответы на извечный вопрос ) .

mdfv
Сообщения: 119
Зарегистрирован: 23 май 2006, 15:53

Сообщение mdfv » 19 май 2008, 13:51

Это сильные грабли.
http://www.firebirdsql.org/index.php?op ... engine_210
Там вверху в красной рамочке....

и тоже самое
http://ibase.ru/firebird/21/metadata_charset.htm

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 19 май 2008, 13:56

С покаянием приму обвинения в криворукости и ответы на извечный вопрос
бегом читать www.ibase.ru, от 23.04.2008 второе сообщение.

wordofjustice
Сообщения: 6
Зарегистрирован: 11 мар 2008, 13:26

Сообщение wordofjustice » 19 май 2008, 14:34

Благодарю, был несобран и не ожидал подвоха. (

Solo
Сообщения: 108
Зарегистрирован: 18 апр 2005, 04:05

Re: RDB$PROCEDURES.RDB$PROCEDURE_SOURCE - русский не пройдет?

Сообщение Solo » 07 сен 2008, 14:18

Ну елки-палки, а!!! Я тоже попался. :roll: У меня после бэкапа ресторе делается и все путем. Но при попытке открыть восстановленную базу ругается на транслитерэйт в description доменов (они у меня на русском). Я так полагаю, что и на все остальные русские описания он бы ругаться стал... Ну... буду читать. Надеюсь, прочту и пойму. Целый месяц уже работаю на 2,1, и не пытался сделать контрольный ресторе...

Ответить