WIN1251 и UTF8 (...)

Модераторы: kdv, CyberMax

Ответить
YuryL65Site
Сообщения: 4
Зарегистрирован: 04 фев 2011, 11:00

WIN1251 и UTF8 (...)

Сообщение YuryL65Site » 12 ноя 2014, 14:58

Добрый день. Есть БД (FB 2.5), в которой все текстовые поля Win1251.

Для локализации информации была добавлена таблица

CREATE TABLE PROPS_TXT (
PTX_ID BIGINT NOT NULL,
PTX_ID_OBJ BIGINT NOT NULL,
PTX_ID_LANG BIGINT NOT NULL,
PTX_PROP VARCHAR(48) NOT NULL,
PTX_VALUE VARCHAR(8192) CHARACTER SET UNICODE_FSS
);

в которой хранятся переведенные на разные языки свойства объекта с ИДом PTX_ID_OBJ.

Запрос одновременно нескольких свойств объекта из этой таблицы (более 2-х)

select obj.obj_id, ptx1.ptx_value as tv_descr, ptx2.ptx_value as tv_name, ptx3.ptx_value as tv_type
from objects obj
left join props_txt ptx1 on ptx1.ptx_id_obj = obj.obj_id and ptx1.ptx_id_lang = 27004 and ptx1.ptx_prop = 'TV_DESCR'
left join props_txt ptx2 on ptx2.ptx_id_obj = obj.obj_id and ptx2.ptx_id_lang = 27004 and ptx2.ptx_prop = 'TV_NAME'
left join props_txt ptx3 on ptx3.ptx_id_obj = obj.obj_id and ptx3.ptx_id_lang = 27004 and ptx3.ptx_prop = 'TV_TYPE'
where obj.obj_id = -214307787

приводит к ошибке

Undefined name.
Dynamic SQL Error.
SQL error code = -204.
Implementation limit exceeded.
block size exceeds implementation restriction.

Какие могут быть решения этой проблемы? Спасибо.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: WIN1251 и UTF8 (...)

Сообщение Dimitry Sibiryakov » 13 ноя 2014, 14:57

Не надо ТАK работать с EAV. Вытягивай пачки атрибутов на клиента или среднее звено, а уже там и раскладывай по свойствам/ячейкам.

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

Re: WIN1251 и UTF8 (...)

Сообщение kdv » 13 дек 2014, 12:19

кроме того, UNICODE_FSS это совсем не UTF8

http://www.ibase.ru/unicode_faq.html

Ответить