Страница 1 из 1

WIN1251 и UTF8 (...)

Добавлено: 12 ноя 2014, 14:58
YuryL65Site
Добрый день. Есть БД (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.

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

Re: WIN1251 и UTF8 (...)

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

Re: WIN1251 и UTF8 (...)

Добавлено: 13 дек 2014, 12:19
kdv
кроме того, UNICODE_FSS это совсем не UTF8

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